这是我的代码:
public static string name;
private void openWindow(object sender, EventArgs e)
{
if (button_name1.PerformClick){
name = "name1";
}
if (button_name2.PeformClick)
{
name = "name2";
}
else
{
name = "name3";
}
this.Hide();
Form2 form2 = new Form2();
form2.ShowDialog();
}
因此,我有三个按钮,单击每个按钮都应打开一个新的相同窗口。但是每个按钮必须在字符串(名称)中保存一个不同的名称。
在这种if
条件下,我的目标正是如此,但是VS2017说PeformClick无法转换为bool类型。
第二,这意味着按钮没有PeformClick的定义。
我该如何解决?
还是我从一开始就尝试完全错误?
答案 0 :(得分:1)
此“ openWindow”是否作为单击处理程序附加到所有三个按钮?然后,“发件人”就是那个特定的按钮,您只需要投射它即可。您可以预先设置.Tag属性,并在处理程序中读取其值。
private void openWindow(object sender, EventArgs e)
{
Button clickedButton = (Button)sender;
name = clickedButton.Tag;
// create form etc
}
答案 1 :(得分:1)
假设您有树形按钮,并且它们的所有点击事件都附加到openWindow
下面的内容可以为您服务。
public static string name;
private void openWindow(object sender, EventArgs e)
{
Button senderButton = (Button)sender;
if (senderButton == button1)
{
name = "name1";
}
else if (senderButton == button2)
{
name = "name2";
}
else
{
name = "name3";
}
this.Hide();
Form form2 = new Form();
form2.ShowDialog();
}
实际上,这是@Hans Ke st ing提供的方法的完整代码。