问:这是我可以清除表单中所有单选按钮的唯一代码,但是我不知道如何解释。我只是在学习基本的C#,找不到代码或其工作方式的清晰说明。
公共IEnumerable <Control> GetAll(控件控件,类型类型)
{
var controls = control.Controls.Cast <Control>();
返回控件。SelectMany(ctrls => GetAll(ctrls,type))。Concat(controls).Where(c => c.GetType()== type);
}
private void Reset&#95; button&#95; Click(对象发送者,EventArgs e)
{
如果(MessageBox.Show(“确定要重置测试吗?”,“重置吗?”,MessageBoxButtons.YesNo,MessageBoxIcon.Question)== DialogResult.Yes)
{
progressBar1.Increment(-100);
学生名&#95; txtbox.Clear();
var cntls = GetAll(this,typeof(RadioButton));
foreach(在cntls中控制cntrl)
{
RadioButton rbtn =(RadioButton)cntrl;
如果(rbtn.Checked)
{
rbtn.Checked = false;
}
}
}
}
答:就此代码的功能而言,它是某种在线测试引擎的代码片段。如果应试者愿意,编写的代码用于将答案单选按钮重置为空白。
公共IEnumerable GetAll(控件,类型)
{
var controls = control.Controls.Cast();
返回控件。SelectMany(ctrls => GetAll(ctrls,type))。Concat(controls).Where(c => c.GetType()== type);
}
上面是获取控件类型的方法,在这种情况下为单选按钮。
现在出现了单击方法,该方法必须在“重置”按钮单击上执行。
progressBar1.Increment(-100); //用于运行进度条
student_name_txtbox.Clear(); //从文本框中清除了某些学生的名字。再次,我不知道引用。
var cntls = GetAll(this,typeof(RadioButton)); //上面介绍了GetAll方法,该方法用于按类型获取所有单选按钮。考虑“ typeof”语法。
foreach(在cntls中控制cntrl)
{
RadioButton rbtn =(RadioButton)cntrl;
如果(rbtn.Checked)
{
rbtn.Checked = false;
}
}
上面是用于清除单选按钮检查的foeach循环,仅此而已。