如果语句由按钮触发触发

时间:2020-05-06 06:31:34

标签: c#

这是我的代码:

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的定义。

我该如何解决?

还是我从一开始就尝试完全错误?

2 个答案:

答案 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提供的方法的完整代码。