【发布时间】:2017-04-13 11:46:13
【问题描述】:
场景
当用户在 WindowsForms 设计器上放置 TextBox 控件时,设计器仅显示两个大小选择器来调整控件的宽度:
...除非手动启用TextBox.MultiLine 属性。
但如果我们添加一个RichTextBox,它会显示 8 个尺寸选择器:
...即使启用了RichTextBox.MultiLine 属性。
问题
我想做的是子类RichTextBox 类来模仿TextBox 在设计时默认具有的大小调整行为,这意味着如果RichTextBox 不是多行,则防止高度/角大小调整。
确切地说,我想在设计时移除/隐藏高度和角尺寸选择器,因此子类RichTextBox 应该只显示两个尺寸选择器来调整控件的宽度,如上图所示TextBox.
我知道 the methodology to override SetBoundsCore method 可以防止在设计时调整高度大小,但是我想比那个解决方案走得更远一些,因为那个解决方案不会删除这些大小选择器 ...并且仅让尺寸选择器可见是设计时丑陋且令人困惑的行为。
我查看了官方的TextBox类源代码看到what happens when the TextBox.MultiLine property value is changed,但我没有看到任何相关的东西。
也许涉及分配给TextBox 类(System.Windows.Forms.Design.TextBoxBaseDesigner)的DesignerAttribute() 类,也许是在设计时决定大小行为的人?在这种情况下,我可以做什么以及如何做?.
【问题讨论】:
标签: c# .net vb.net visual-studio windows-forms-designer