繁体   English   中英

在WinForm中向textbox custom usercontrol添加标签

[英]Add label to textbox custom usercontrol in WinForm

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

  1. 使用标签和文本框创建用户控件。 如何根据输入的文本使控件,标签和文本框适当调整大小,因为控件可以重复使用,并且将输入不同的文本大小。 如何使文本框的所有属性和事件保持不变。

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

有关如何做其中任何一项的任何建议? 谢谢。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM