我当前的项目要求我在表单1中单击编辑按钮时禁用表单2中的组合框。我想知道的是如何禁用表单2中的表单2中的组合框。
我试过
IDComboBox4.Enabled = false;
表单1中的但是我得到了错误,说
“名称'IDComboBox4'在当前上下文中不存在”。
更新:
我尝试了两个答案,但遗憾的是都没有奏效。现在我收到语法错误
“非静态字段,方法或属性需要对象引用”
尝试代码时
dlgForm.ComboBox4Enabled = false;
Form1中的代码
public bool ComboBox4Enabled
{
get
{
return IDComboBox4.Enabled;
}
set
{
IDComboBox4.Enabled = value;
}
}
Form2中的也是dlgForm。我觉得我忽略了一些基本的东西,但是暂时不能把手指放在它上面。如果您想要我的代码的一些片段让我知道。任何帮助表示赞赏。再次感谢。
答案 0 :(得分:3)
注意:这是一个按钮的示例,您可以将其更改为组合框
在设计器中选择您的按钮,转到它的属性并将“修改器”属性从私有更改为公共。
alt text http://xmages.net/out.php/i170429_1.png
然后你可以从另一个类访问它,如下所示:
public static class Test
{
public static void DisalbeMyButton()
{
var form = Form.ActiveForm as Form1;
if (form != null)
{
form.MyButton.Enabled = false;
}
}
}
答案 1 :(得分:3)
如果您愿意,您可以公开IDComboBox4并使用form2.IDComboBox4.Enabled = false;
,但我强烈建议您在表单2上创建一个属性,允许您在不访问form2内部的情况下执行此操作。像这样:
public bool ComboBox4Enabled{
get{return IDComboBox4.Enabled;}
set{IDComboBox4.Enabled = value;}
}
然后使用form2.ComboBox4Enabled = false;
进行设置。
虽然你正在使用它 - 你真的应该重命名你的组合框等,以便它们对下一个开发人员有意义。 _cbbJobTitle
或其他。