表格中的访问控制

时间:2017-05-15 08:18:07

标签: c#

我是客观编程的新手,刚刚开始学习,所以我的大多数人的问题可能都是愚蠢的,但我真的不知道如何实现我的需要。

我有Form1控件 - combobox_kraje,用户选择国家/地区click button,这是按钮代码

enter image description here

此处Messagebox.Show(combobox_kraje.text)显示此控件的正确值。

现在我想访问班级中的combobox_kraje

enter image description here

这里Messagebox.Show(form.combobox_kraje.text)显示错误的值(空MessageBox)。

您能否解释一下我如何在班上访问该表单控件?

2 个答案:

答案 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所述,你应该添加一个属性来公开它自己的文本,而不是使用公共控件。