Visual Studio 2010(VS)--数学口算测验器⑤
上期回顾(上期主要写了定时器功能,当开始测验时倒计时):
这期主要是想实现一个答案比对功能
1.0 首先写一个方法,用来比对答案,然后返回一个BOOL量
public bool CheckTheAnswer()//计算校验
{
if (addend1 + addend2 == SUM.Value)//比对加法运算答案
{
return true;//正确CheckTheAnswer返回true
}
else
{
return false;//错误CheckTheAnswer返回false
}
}
2.0 写好校验程序后,要再后面开始调用触发校验程序,这里我们把他加在定时器Tick事件触发程序这里,每秒来检测答案是否正确,如果正确就提前终止
private void timer1_Tick(object sender, EventArgs e)
{
//每1S会触发这个事件
if (CheckTheAnswer())//如果答案正确
{
timer1.Stop();//定时器停止
MessageBox.Show("You got all the answers right!",
"Congratulations!");//提示框
Startbutton.Enabled = true;//复位开始测试按钮
}
else if (timeLeft > 0)//时间还未结束
{
timeLeft = timeLeft - 1;//每次都把剩余减1
//控件文本显示倒计时和字符串seconds
//控件文本只能显示字符串,但是如果是字符串+数字等也是可以的
timeLabel.Text = timeLeft + "seconds";
}
else
{
timer1.Stop();//定时器关闭
timeLabel.Text = "Time's up!";//控件显示没时间
MessageBox.Show("You didn't finish in time.");//再跳个弹窗时间到了
SUM.Value = addend1 + addend2;//显示正确答案
Startbutton.Enabled = true;//复位开始测试
}
}
3.0 控件--事件--选择可响应的事件,后面是设定响应事件函数
4.0 对这个事件响应程序,进行代码编写,让其能够在Tab选择时,能全选所有当前所有值
private void answer_Enter(object sender, EventArgs e)
{
//指定发送对象为NumericUpDown的方法,命名answerBox,
//这样就可以用于所有NumericUpDown
NumericUpDown answerBox = sender as NumericUpDown;
//answerBox 是否已成功地从一个对象转换(强制转换)为一个 NumericUpDown 控件。
//如果转换不成功,此变量的值将为 null
if (answerBox != null)//如果不为null
{
int lengthofAnswer = answerBox.Value.ToString().Length;//获取当前控件的字符长度
answerBox.Select(0,lengthofAnswer);//根据控件字符长度选择当前所有的显示值
}
}
5.0 选中其他3个运算结果的控件,如下图,都选择同一个响应程序
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2559.html