在另一个窗体上用复选框更改按钮.c#

本文关键字:按钮 复选框 另一个 窗体 | 更新日期: 2023-09-27 18:22:09

例如,我正试图用另一个表单上的复选框来更改按钮的可见状态;

当表单2上复选框选中的状态发生更改时,表单1上按钮1的可见属性将发生更改。如果有人能给我指明正确的方向,我会选择的,谢谢。

在另一个窗体上用复选框更改按钮.c#

定义Form2上的事件。例如

public event EventHandler StateChanged;

当复选框选中的状态更改时引发此事件:

private void Checkbox_CheckedChanged(object sender, EventArgs e)
{
   if (StateChanged != null)
      StateChanged(this, EventArgs.Empty);
}

Form1 中订阅此事件

form2.StateChanged += Form2_StateChanged;

更改此事件处理程序中的按钮:

private void Form2_StateChanged(object sender, EventArgs e)
{
    button.Visible = !button.Visible;
}

通常当我做这样的事情时,我会添加一个调用它的方法。

        Form1 with the button
public void SetVisibility(bool visible)
{
   Button.Visible = visible;
}
      Form 2 With CheckBox
CheckBox_CheckChanged(object sender, EventArgs e)
{
    Form1.SetVisibility(CheckBox.Checked);
}

在窗体上添加一个公共方法还可以使您从其他窗体控制它。不确定最好的答案是什么,这取决于你。

编辑:

与问题无关,但。。。

关于Form 2

var form1Control = new Form1();
form1Control.SetVisibility(true);