使用窗体外部的对象
本文关键字:对象 外部 窗体 | 更新日期: 2023-09-27 18:18:01
我当前的项目要求我禁用表单2的组合框,当编辑按钮在表单1中单击。我想知道的是如何从表单1中禁用表单2中的组合框。
I tried
IDComboBox4.Enabled = false;
Form 1中的但是我得到的错误是
更新:"名称'IDComboBox4'在当前上下文中不存在".
我尝试了两个答案,但遗憾的是都没有成功。现在我得到一个语法错误
当尝试代码 时"非静态字段、方法或属性需要对象引用"
dlgForm.ComboBox4Enabled = false;
Form1中的,代码
public bool ComboBox4Enabled
{
get
{
return IDComboBox4.Enabled;
}
set
{
IDComboBox4.Enabled = value;
}
}
中的Form2,也是dlgForm。我觉得我忽略了一些基本的东西,但是现在我不能把我的手指放在它上面。如果您想要一些我的代码片段,请告诉我。任何帮助都是感激的。再次感谢。
如果你喜欢,你可以让IDComboBox4公开并使用form2.IDComboBox4.Enabled = false;
,但我强烈建议你在表单2上创建一个属性,允许你在不访问表单2内部的情况下这样做。像这样:
public bool ComboBox4Enabled{
get{return IDComboBox4.Enabled;}
set{IDComboBox4.Enabled = value;}
}
然后用form2.ComboBox4Enabled = false;
设置。
当你在做的时候,你真的应该重命名你的组合框等,这样他们对下一个开发人员来说就有意义了。_cbbJobTitle
之类的
注意:这是一个按钮的例子,你可以将其更改为combobox
在设计器中选择你的按钮,进入它的属性,将"Modifiers"属性从Private更改为Public。
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;
}
}
}