用户控件的控件是否应由属性支持?

时间:2010-02-05 16:12:09

标签: c# .net winforms user-controls properties

希望我说得对。我有一个WinForm(3.5)应用程序有1个表格,分为两个区域。 1是导航,另一个是Panel,是内容。您可以在导航部分中选择所需内容,即人口统计数据,然后在面板中嵌入包含所有受众特征控制的UserControl。

我要问的是,每个用户控件的每个Property是否应该Control。示例:ucDemographics有一个名为txtCity的文本框。是否应该Property存储value txtCity并允许我的表单和其他用户控件访问它?

这是普遍接受的“最佳实践”吗?

如果没有,那是什么?

2 个答案:

答案 0 :(得分:5)

这取决于您希望使用UserControl实现的目标。

通常你不会公开txtCity,因为调用者可以操作文本框的所有内容。在大多数情况下,您只会公开当前文本ála

public string CityText
{
    get { return this.txtCity.Text; }
}

答案 1 :(得分:2)

不,这不是一个真正的最佳实践。用户控件的目的是用自己的行为组合新控件。您最多应该拥有公共的“几个”属性,方法和事件,并允许表单与新控件交互。如果您发现使用它的唯一好方法是通过公开其组成控件,最好不要使用UserControl,而只是将控件直接放在窗体上。