在WinForm中向textbox custom usercontrol添加标签

时间:2012-08-09 18:37:02

标签: c# winforms user-controls

我正在编写一个包含大量文本框的Windows窗体应用程序。我想在文本框中添加标签或标题,这样我就不必将很多标签拖到表单上并处理定位等。到目前为止,我已经找到了两种可能的方法来实现这一点。

  1. 使用标签和文本框创建用户控件。我如何得到 控制,标签和文本框适当大小取决于 由于控件可重复使用而输入的文本将输入不同的文本大小。如何获得所有 文本框的属性和事件保持不变。

  2. 扩展普通文本框并添加名为label或的字符串属性 标题,并在文本框的左侧显示此属性。我知道 这可以在带有CSS的Web.UI中完成,但是它可以在winform中完成 以及如何?

  3. 有关如何进行其中任何一项的任何建议吗? 感谢。

2 个答案:

答案 0 :(得分:3)

您可以创建包含标签和文本框的UserControl。将用户控件添加到表单时,将同时添加标签和文本框。您可以公开标签和文本框的属性,以便在设计或运行时分配值。

使用此方法,您可以添加多个用户控件以标准化布局。至于根据文本调整控件大小,您必须订阅事件并手动更改大小。

例如,您可以订阅标签和文本框的TextChanged事件。触发事件时,您计算字符串的大小,然后相应地调整控件的宽度和位置。

答案 1 :(得分:0)

如果你的文本框太多,我建议你切换到DataGridView。 GridView组件非常适合您所描述的内容,但当然它要求您接受网格布局。

使用GridView所涉及的其中一个奖励很难理解,直到你看到它的实际效果:它一次只创建一个HWINDOW(如果你处于编辑模式,则只有两个)。如果在表单上创建标签和文本框,则每个表单都在操作系统中注册为HWINDOW对象。所有这些HWINDOW对象都需要时间来显示!在.NET 1.0中,WinForms非常慢,超过大约24个控件的对话框无法使用。尽管.NET 2.0在这方面要好得多,但是通过使用管理大量数据的单个控件仍然可以获得明显更好的性能,而不是每个管理一个数据的大量控件。

哦,另外一个选择,如果你愿意:你也可以试试PropertyGrid。它的优点是它还可以显示帮助,并允许您为每个元素创建复杂的编辑控件。

相关问题