如何获得一个按钮来切换另一个表单上的另一个按钮?

我正在尝试获取它,以便当管理面板中的某个人按下管理表单上的“锁定系统”时,它会禁用“ Form1”上的按钮。我已将按钮设置为public,并将其更改为代码中的公共空白。

这是我尝试过的。

管理面板代码:

private void Button7_Click(object sender,EventArgs e)
{
    ((Form1)this.Owner).button1.Enabled = false;
}

Form1代码:

public void Button1_Click(object sender,EventArgs e)
{
    var newwindow = new CanCad();
    newwindow.Show();
}

这是我收到的错误的屏幕截图:http://prntscr.com/ptkkm3

xzwilliams 回答:如何获得一个按钮来切换另一个表单上的另一个按钮?

您正在尝试使用第二种形式的Owner属性,但从未设置。要设置Owner属性,应将第一种形式的实例传递给.Show()方法:

public void Button1_Click(object sender,EventArgs e)
{
    var newwindow = new CanCad();
    newwindow.Show(this); // <------ notice the difference.
}

或者您可以根据需要手动设置属性:

newwindow.Owner = this;
newwindow.Show();

然后,您可以照常以第二种形式使用原始代码:

private void Button7_Click(object sender,EventArgs e)
{
    ((Form1)this.Owner).button1.Enabled = false;
}

进一步的改进是使用as operator以确保所有者的类型正确:

Form1 frm = this.Owner as Form1;
if (frm != null) frm.button1.Enabled = false;
本文链接:https://www.f2er.com/3147038.html

大家都在问