在另一个窗体上用复选框更改按钮.c#
本文关键字:按钮 复选框 另一个 窗体 | 更新日期: 2023-09-27 18:22:09
例如,我正试图用另一个表单上的复选框来更改按钮的可见状态;
当表单2上复选框选中的状态发生更改时,表单1上按钮1的可见属性将发生更改。如果有人能给我指明正确的方向,我会选择的,谢谢。
定义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);