我在同一组中有四个单选按钮。根据检查的是哪一个,变量会像这样改变:
public void radiobutton1_Checked(object sender, RoutedEventArgs e)
{
angle_Offset = 0 - direction;
}
public void radiobutton2_Checked(object sender, RoutedEventArgs e)
{
angle_Offset = 90 - direction;
}
public void radiobutton3_Checked(object sender, RoutedEventArgs e)
{
angle_Offset = 180 - direction;
}
public void radiobutton4_Checked(object sender, RoutedEventArgs e)
{
angle_Offset = 270 - direction;
}
我正试图找到一种方法来减少代码。我尝试了一些if / else语句,但它只是一样长,并且在检查不同的按钮时变量没有更新。任何提示都会很棒!
答案 0 :(得分:1)
如果您为单选按钮指定了标签并创建了与这些标签对应的角度数组,则可以使用单一方法对其进行处理。
将0分配给第一个单选按钮的标签,将1分配给第二个单选按钮的标签,将2分配给第三个单选按钮的标签,将3分配给第四个单选按钮。现在可以按如下方式重写事件处理程序:
public void radiobutton2_Checked(object sender, RoutedEventArgs e) {
var rb = (RadioButton)sender;
var tag = Convert.ToInt32(rb.Tag);
angle_Offset = (90*tag) - direction;
}