多选按钮的应用----模拟多项选择题测试
设计思路
为了简化问题,这里假设有3道选择题,使用一个一维数组ti_mu来存放每道题的题目,一个二维数组Item存放每道题的四个选项,使用一个通用方法chu_ti()修改标签上的文字和单选按钮旁的文字,完成出题功能。此外还需要使用一个数组成员变量s存放题号,当用户单击下一题时,令s=s+1。
设计步骤
(1)创建Windows应用程序项目,在窗体上添加一个分组框GroupBox(为了美观,Text属性为空)和一个标签label1,2个按钮button1,button2以及4个复选按钮CheckBox~4,如下所示:
(2)编写程序代码,首先在Form1类成员代码区中,加入定义字段成员变量:
private string[] ti_mu = new string[4]; //存放题目
private string[,] Item = new string[4,5]; //存放ABCD
private string[] Answer = new string[4]; //存放题目的答案如AC
private int s;
出题部分由通用方法chu_ti()完成: private void chu_ti()
{
label1.Text = ti_mu[s];
checkBox1.Text = Item[s, 1];
checkBox2.Text = Item[s, 2];
checkBox3.Text = Item[s, 3];
checkBox4.Text = Item[s, 4];
}
出题部分由通用方法chu_ti()完成: private void Form1_Load(object sender, EventArgs e)
{
ti_mu[1] = "下列关于构造函数的描述正确的是()";
ti_mu[2] = "C#的合法注释是()";
ti_mu[3] = "窗体Form1的Text属性为frm,则其load事件名为()";
Item[1, 1] = "A.构造函数可以设置为默认参数";
Item[1, 2] = "B.构造函数可以有多个参数";
Item[1, 3] = "C.构造函数可以显示调用";
Item[1, 4] = "D.构造函数不可以重载";
Item[2, 1] = "A./*this is a C program/*";
Item[2, 2] = "B.//this is a C program";
Item[2, 3] = "C./this is a C program/";
Item[2, 4] = "D./*this is a C program*/";
Item[3, 1] = "A.From_Load";
Item[3, 2] = "B.From1_Load";
Item[3, 3] = "C.Frm_Load";
Item[3, 4] = "D.Me_Load";
Answer[1] = "AB"; //C正确
Answer[2] ="BD"; //A正确
Answer[3] = "B"; //B正确
s = 1;
chu_ti();
}
private void button1_Click(object sender, EventArgs e)
{
string d = "";
if (checkBox1.Checked) d = d + "A";
if (checkBox2.Checked) d = d + "B";
if (checkBox3.Checked) d = d + "C";
if (checkBox4.Checked) d = d + "D";
if (d== Answer[s])
MessageBox.Show("恭喜,你选对了");
else
MessageBox.Show("选择错误!");
}
编写“下一题”按钮的Click事件代码 private void button2_Click(object sender, EventArgs e)
{
s = s + 1;
//取消选中状态
if (checkBox1.Checked) checkBox1.Checked = false;
if (checkBox2.Checked) checkBox2.Checked = false;
if (checkBox3.Checked) checkBox3.Checked = false;
if (checkBox4.Checked) checkBox4.Checked = false;
if (s > 3)
MessageBox.Show("恭喜您,题目已经做完");
else
chu_ti();
}
结果展示: