C# 使用复选框从表单1禁用表单2上的按钮
我有两个表单对象:C# 使用复选框从表单1禁用表单2上的按钮,c#,vb.net,visual-studio-2010,visual-studio,c#-4.0,C#,Vb.net,Visual Studio 2010,Visual Studio,C# 4.0,我有两个表单对象:form1和form2 我在form2上有一个按钮,在form1上有一个复选框。选中该复选框时,我希望显示该按钮,未选中该复选框时,我希望禁用该按钮。我知道,在visual basic中,我做了这样一件事: form2.button.visible = false 在c#中,我将如何做类似的事情 在一般情况下(当Form1和From2实例是独立的时),您可以这样做。在表单2中实现公共属性: 在myCheckBox上的Form1中找到Form2实例并分配属性: 在C#中基本上是
form1
和form2
我在form2
上有一个按钮,在form1
上有一个复选框。选中该复选框时,我希望显示该按钮,未选中该复选框时,我希望禁用该按钮。我知道,在visual basic中,我做了这样一件事:
form2.button.visible = false
在c#中,我将如何做类似的事情 在一般情况下(当Form1
和From2
实例是独立的时),您可以这样做。在表单2中
实现公共属性:
在myCheckBox上的Form1
中找到Form2
实例并分配属性:
在C#中基本上是一样的。您获得对表单的引用,然后访问相应的成员。在VB中,设计器为控件生成的字段默认为Friend
,而在C#中默认为private
。如果希望从外部访问它们,则将它们声明为内部
,这相当于朋友
。我宁愿在两种语言中都使用public
方法,但这取决于您。区别在于C#中没有默认实例。这意味着您需要在创建表单时保留对表单的引用,即将其分配给字段。为什么不将其作为答案@jmcilhinneycan?请提供一些代码。我搜索答案已经有一段时间了。@TheQuickBrownFox,看看这个人在你之后的评论?这就是我发表评论而不是回答的原因。
public partial class Form2 {
...
public Boolean IsMyButtonVisible {
get {
return myButton.Visible;
}
set {
myButton.Visible = value;
}
}
...
}
public partial class Form1 {
...
private void myCheckBox_CheckedChanged(object sender, EventArgs e) {
foreach(Form f in Application.OpenForms) {
Form2 form2 = f as Form2;
if (form2 != null)
form2.IsMyButtonVisible = myCheckBox.Checked;
}
}
...
}