我有一个C#类库,它使用一个表单(也在库中).假设我在这个表单上有一个名为editContents的编辑框.在常规表单应用程序中,我习惯于能够像这样获取编辑框:
class MainForm
{
void Method()
{
this.editContents.Text = "Hi";
}
}
Run Code Online (Sandbox Code Playgroud)
我想在常规表单应用程序中幕后发生了一些魔术,因为编辑框成员在MainForm类中是私有的,但我仍然可以像公共成员一样访问它.
但在我的类库中,我无法像这样访问编辑框.我实例化并显示"手动"形式,如下所示:
form = new MyForm();
form.Show();
Run Code Online (Sandbox Code Playgroud)
如何从此表单正确获取editContents控件?
Don*_*nut 14
您可以通过添加以下代码使其成为可公开访问的属性:
public String EditContents // for just the "Text" field
{
get { return this.editContents.Text; }
set { this.editContents.Text = value; }
}
Run Code Online (Sandbox Code Playgroud)
要么:
public TextBox EditContents // if you want to access all of the TextBox
{
get { return this.editContents; }
set { this.editContents = value; }
}
Run Code Online (Sandbox Code Playgroud)
"神奇"是在*.Designer.cs文件中为您的文本框生成一个字段.默认情况下,此字段是私有的.如果要更改其可访问性,请在表单设计器中选择文本框,然后将"修饰符"属性更改为"公共".
但是,公开展示表单的所有控件可能不是一个好主意.您可以将其包裹在Donut建议的属性中,这样更清洁.