我是客观编程的新手,刚刚开始学习,所以我的大多数人的问题可能都是愚蠢的,但我真的不知道如何实现我的需要。
我有Form1控件 - combobox_kraje
,用户选择国家/地区click button
,这是按钮代码
此处Messagebox.Show(combobox_kraje.text)
显示此控件的正确值。
现在我想访问班级中的combobox_kraje
这里Messagebox.Show(form.combobox_kraje.text)
显示错误的值(空MessageBox)。
您能否解释一下我如何在班上访问该表单控件?
答案 0 :(得分:1)
将某些内容设置为公开以便能够在外部访问它并不是一个好主意,至少在这里有一个更好的方法来做到这一点。只需在表单中添加一个返回combonboxes文本值的属性:
public class MyForm : Form
{
public string TheMessageText { return this.combobox_kraje.Text; }
}
现在通过form.TheMessageText
访问它。通过这种方式,您可以保留实际控件private
并仅将这些部件提供给相关的部件,而不是整个控件。
答案 1 :(得分:0)
您正在使用form
(由new Form1()
初始化),但它不是显示的实例。
您应该将显示的实例传递给类,并将其分配给form
:
public MyClass(Form1 form1)
{
this.form = form1;
}
同样如@HimBromBeere所述,你应该添加一个属性来公开它自己的文本,而不是使用公共控件。