怎么保存复选框的值(多选题)
如图checkbox都选中了但是点击下一题就只剩一个答案是选中的
我想用checkbox控件保存多选题的答案
代码如下:private void checkAnswer() {
chbA.Checked = chbB.Checked = chbC.Checked = chbD.Checked = false;
switch (answer[index]) {
case "A":
chbA.Checked = true;
break;
case "B":
chbB.Checked = true;
break;
case "C":
chbC.Checked = true;
break;
case "D":
chbD.Checked = true;
break;
}
}
private void chooseAnswer_click(object sender, EventArgs e)
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
answer[index] = chb.Text;
}
private void btnCheckAnswer_Click(object sender, EventArgs e)
{
ck = new checkForm();
ck.counts = count;
ck.answer = answer;
ck.trueAnswer = Tanswer;
ck.ShowDialog();
index = ck.index;
checkAnswer();
QuestionMethod();
} .net 控件 --------------------编程问答-------------------- 因为你没有循环 到A那里就break了 --------------------编程问答-------------------- http://blog.csdn.net/xianfajushi/article/details/8840789 --------------------编程问答-------------------- answer[index]存全部选中选项
answer[index] = string.empty;
if( chbA.Checked )
{
answer[index] = chbA.Text;
}
恢复时判断字符串
if( answer[index].IndexOf("A")>=0 )
{
chbA.Checked = true;
}
if( answer[index].IndexOf("B")>=0 )
{
chbB.Checked = true;
}
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答-------------------- case break是结束了循环;
CheckBox chb = (CheckBox)sender; 这一句有问题吗
--------------------编程问答-------------------- 三楼的循环我试了,还是只能保存一个 --------------------编程问答-------------------- 去掉break --------------------编程问答-------------------- 下一题 按钮的时候 判断的复选框的状态 累加成字符串保存,然后再清空下状态,准备下一题?
--------------------编程问答--------------------
改成:
if( chbA.Checked )
{
answer[index] += chbA.Text;
} --------------------编程问答-------------------- answer[index] 是一个数组变量还是只是string类型的变量 如果是string类型的变量 就+= --------------------编程问答-------------------- 你这种一题一题的 其实很麻烦,不如放在一个页面上,真的,我老大说的,至于为什么没取到值,肯定是你没循环的 --------------------编程问答-------------------- 你这个是CS吧,至于你那4个多选项是放在同一个容器中吗? --------------------编程问答-------------------- http://www.cnblogs.com/dreamseek/
我刚写的这个不知道对你有没有帮助
--------------------编程问答-------------------- 这种情况就不要用case break了呗,用4个if就能够满足需求 --------------------编程问答--------------------
大神,pnlSelectProject你怎么设计的? --------------------编程问答--------------------
你这一段我早之前就实验过,不成功啊 --------------------编程问答--------------------
--------------------编程问答-------------------- 你在点击下一题的时候,把这个数据保存到数据库。这样,你点击上一题的时候根据现在的题数查询上一题的答案就是了。 --------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
if (chkA.Checked)
{
result += textBox1.Text;
}
if (chkB.Checked)
{
result += textBox2.Text;
}
if (chkC.Checked)
{
result += textBox3.Text;
}
if (chkD.Checked)
{
result += textBox4.Text;
}
this.textBox5.Text = result;
}
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
if (chkA.Checked)
{
result += textBox1.Text;
}
if (chkB.Checked)
{
result += textBox2.Text;
}
if (chkC.Checked)
{
result += textBox3.Text;
}
if (chkD.Checked)
{
result += textBox4.Text;
}
this.textBox5.Text = result;
}
大神,你的代码我试了还是不行
private void checkAnswer()
{
chbA.Checked = chbB.Checked = chbC.Checked = chbD.Checked = false;
if (chbA.Checked)
{
answer[index] += chbA.Text;
}
if (chbB.Checked)
{
answer[index] += chbB.Text;
}
if (chbC.Checked)
{
answer[index] += chbC.Text;
}
if (chbD.Checked)
{
answer[index] += chbD.Text;
}
}
private void chooseAnswer_click(object sender, EventArgs e)
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
answer[index]=chb.Text;
}
你看看标红的是不是有问题 --------------------编程问答-------------------- http://pan.baidu.com/s/1rEMOT
这是我模仿自学的源码,有大神可以完善多选题的部分吗 --------------------编程问答--------------------
http://www.cnblogs.com/dreamseek/
我刚写的这个不知道对你有没有帮助
大神,pnlSelectProject你怎么设计的?
用Pannel控件就可以了啊,这个Pannel控件中只包含A、B、C、D四个选择项就可以了 这样用this.pnlSelectProject.Contorls来获取了里面的控件了 然后遍历 --------------------编程问答--------------------
http://pan.baidu.com/s/1rEMOT
这是我模仿自学的源码,有大神可以完善多选题的部分吗
自己做吧,大家都可以帮你,自己解决以后下次才能记住呀。 --------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
if (chkA.Checked)
{
result += textBox1.Text;
}
if (chkB.Checked)
{
result += textBox2.Text;
}
if (chkC.Checked)
{
result += textBox3.Text;
}
if (chkD.Checked)
{
result += textBox4.Text;
}
this.textBox5.Text = result;
}
大神,你的代码我试了还是不行
private void checkAnswer()
{
chbA.Checked = chbB.Checked = chbC.Checked = chbD.Checked = false;
if (chbA.Checked)
{
answer[index] += chbA.Text;
}
if (chbB.Checked)
{
answer[index] += chbB.Text;
}
if (chbC.Checked)
{
answer[index] += chbC.Text;
}
if (chbD.Checked)
{
answer[index] += chbD.Text;
}
}
private void chooseAnswer_click(object sender, EventArgs e)
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
answer[index]=chb.Text;
}
你看看标红的是不是有问题
chooseAnswer_click这个方法是干什么用的 --------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
if (chkA.Checked)
{
result += textBox1.Text;
}
if (chkB.Checked)
{
result += textBox2.Text;
}
if (chkC.Checked)
{
result += textBox3.Text;
}
if (chkD.Checked)
{
result += textBox4.Text;
}
this.textBox5.Text = result;
}
大神,你的代码我试了还是不行
private void checkAnswer()
{
chbA.Checked = chbB.Checked = chbC.Checked = chbD.Checked = false;
if (chbA.Checked)
{
answer[index] += chbA.Text;
}
if (chbB.Checked)
{
answer[index] += chbB.Text;
}
if (chbC.Checked)
{
answer[index] += chbC.Text;
}
if (chbD.Checked)
{
answer[index] += chbD.Text;
}
}
private void chooseAnswer_click(object sender, EventArgs e)
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
answer[index]=chb.Text;
}
你看看标红的是不是有问题
chooseAnswer_click这个方法是干什么用的
是点击选择项的时候发生的事件。感觉这样设计是不是有问题? --------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
if (chkA.Checked)
{
result += textBox1.Text;
}
if (chkB.Checked)
{
result += textBox2.Text;
}
if (chkC.Checked)
{
result += textBox3.Text;
}
if (chkD.Checked)
{
result += textBox4.Text;
}
this.textBox5.Text = result;
}
大神,你的代码我试了还是不行
private void checkAnswer()
{
chbA.Checked = chbB.Checked = chbC.Checked = chbD.Checked = false;
if (chbA.Checked)
{
answer[index] += chbA.Text;
}
if (chbB.Checked)
{
answer[index] += chbB.Text;
}
if (chbC.Checked)
{
answer[index] += chbC.Text;
}
if (chbD.Checked)
{
answer[index] += chbD.Text;
}
}
private void chooseAnswer_click(object sender, EventArgs e)
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
answer[index]=chb.Text;
}
你看看标红的是不是有问题
chooseAnswer_click这个方法是干什么用的
是点击选择项的时候发生的事件。感觉这样设计是不是有问题?
嗯, 是点击一下checkbox就把它的值记录在answer[index]中
--------------------编程问答-------------------- 没有必要,你去掉再试试。 --------------------编程问答-------------------- 因为 你在保存的时候记录的值 所以没有必要在点击checkbox的时候再记录了。 --------------------编程问答-------------------- 那样的话 肯定只有一个值。 每次执行 都把前面的值覆盖掉了。 --------------------编程问答-------------------- 楼主可以试着改变一下思路,也许改变一下就一目了然了。 --------------------编程问答--------------------
楼主可以试着改变一下思路,也许改变一下就一目了然了。
是把题目都设计在一个页面上吗? --------------------编程问答--------------------
那样的话 肯定只有一个值。 每次执行 都把前面的值覆盖掉了。
但是答案不是不能保存,只是只能保存单个的答案。
保存的答案如下
--------------------编程问答--------------------
楼主可以试着改变一下思路,也许改变一下就一目了然了。
是把题目都设计在一个页面上吗?
你的题不是根据数据动态生成出来的吗?一个页面一个题? --------------------编程问答--------------------
那样的话 肯定只有一个值。 每次执行 都把前面的值覆盖掉了。
但是答案不是不能保存,只是只能保存单个的答案。
保存的答案如下
private void chooseAnswer_click(object sender, EventArgs e)--------------------编程问答--------------------
{
CheckBox chb = (CheckBox)sender; //当前选中的空间对象
if (answer[index].IndexOf(chb.Text)==-1)
{
answer[index] += chb.Text+",";
}
}
那样的话 肯定只有一个值。 每次执行 都把前面的值覆盖掉了。
但是答案不是不能保存,只是只能保存单个的答案。
保存的答案如下
你的chooseAnswer_click这个方法,点击checkbox就存一个值到answer[index] 那当然每次只有一个值啦。 你不要在点击checkbox的时候存值,要在点击下一题的时候存,懂?
点击下一题时,你先获取到所有选中的checkbox然后再存到answer[index]中。不就有多个答案了。 --------------------编程问答-------------------- --------------------编程问答-------------------- 我插,回了这么多,分是没戏了 --------------------编程问答-------------------- like this:
http://www.cnblogs.com/insus/articles/2081639.html
http://www.cnblogs.com/insus/archive/2013/04/24/3039115.html
补充:.NET技术 , ASP.NET