使用另一个表单上的复选框更改按钮。 C#

时间:2014-09-16 19:14:04

标签: c# winforms

我正在尝试使用另一个表单上的复选框更改按钮可见状态;

当复选框选中状态在表单2上更改时,form1上按钮1的可见属性发生更改。如果有人可以指出我正确的方向我会适当的,谢谢你。

2 个答案:

答案 0 :(得分:0)

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;
}

答案 1 :(得分:0)

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

        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);
}

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

编辑:

与问题无关,但......

表格2

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