我有textbox
名为TxtHelp
的初始文字
我也有一些RadioButtons
。
当我触发事件Mouse_Hover
时,我想将TxtHelp.Text
更改为自定义文字
当我触发事件Mouse_Leave
时,我想返回TxtHelp
的原始文本。
我知道如何为每个工具使用2
事件,所以如果我有4个RadioButtons,它将是8
个事件。这是很多代码。就像我有each
radiobutton的代码一样:
private void rb_Serial_MouseHover(object sender, EventArgs e)
{
txt_Ajuda.Text = "CustomText different for each RadioButton";
}
private void rb_Serial_MouseLeave(object sender, EventArgs e)
{
txt_Ajuda.Text = "Return to the initial value of textbox";
}
有没有办法让它更加practical
?某种方式需要我less
代码?
答案 0 :(得分:2)
概括事件处理程序。您需要识别单选按钮,因此要么使用控件的名称,要么为每个单选按钮的Tag
属性(在我的示例中为简单的Int32
值)分配标识数据:
private void rb_MouseHover(Object sender, EventArgs e)
{
switch (Convert.ToInt32(((RadioButton)sender).Tag))
{
case 0:
text1.Text = "Text for radio button 0";
break;
case 1:
text1.Text = "Text for radio button 1";
break;
case 2:
text1.Text = "Text for radio button 2";
break;
case 3:
text1.Text = "Text for radio button 3";
break;
//etc...
}
}
private void rb_MouseLeave(Object sender, EventArgs e)
{
switch (Convert.ToInt32(((RadioButton)sender).Tag))
{
case 0:
text1.Text = "Original for radio button 0";
break;
case 1:
text1.Text = "Original for radio button 1";
break;
case 2:
text1.Text = "Original for radio button 2";
break;
case 3:
text1.Text = "Original for radio button 3";
break;
//etc...
}
}
有了这个,你只需为每个RadioButton
分配相同的两个事件处理程序,并在其中识别它们。