我总共有4种形式(Form1,form2,form3,form4) 3个按钮(表单1有2个(Button1,Button2),表单2有1个(Button3))
我的情况如下:
Form1
中的两个按钮都会导致form2
,但标签输入不同。
我想要做的是点击我的按钮3,如果是loop循环将决定按钮的形式(form3,form4)。如果单击button1,则按钮3将导致form3,否则button3将导致form4。
我不知道在问这个问题时我应该包括哪些部分和我的代码部分所以我假设我应该只按下按钮代码。
这是button1代码:
public void DIModuleButton_Click(object sender, System.EventArgs e)
{
// MessageBox.Show("TEST");
alloDI();
FormSerial frm = new FormSerial();
frm.MyProperty = ALL;
frm.Show();
}
public void alloDI()
{
ALL = "DI";
}
这是button2代码:
public void DOModuleButton_Click(object sender, EventArgs e)
{
alloDO();
FormSerial frm = new FormSerial();
frm.MyProperty = ALL;
frm.Show();
}
public void alloDO()
{
ALL = "DO";
}
答案 0 :(得分:1)
一个简单的解决方案可能是使用布尔标志,因为您只需区分2个按钮。
将新的bool
属性放入您的第二个表单,就像您使用MyProperty
一样。
:
public bool Button1_pressed { get; set; }
在按钮点击事件中,您可以相应地设置它:
public void DIModuleButton_Click(object sender, System.EventArgs e)
{
// MessageBox.Show("TEST");
alloDI();
FormSerial frm = new FormSerial();
frm.MyProperty = ALL;
frm.Button1_pressed = true;
frm.Show();
}
在第二个你将它设置为假
当你的第三个按钮是pressen时,你可以检查这个变量。
如果您有超过2个按钮,我建议使用enum
和开关案例来检查不同的情况:
该属性如下所示:
public ButtonSource MyButton_Clicked { get; set; }
// here your enum
public enum ButtonSource
{
button1,
button2,
button3,
button4
}
和开关案例:
switch (MyButton_Clicked)
{
case ButtonSource.button1:
break;
case ButtonSource.button2:
break;
case ButtonSource.button3:
break;
case ButtonSource.button4:
break;
default:
break;
}