Rob*_*obC 15 vb.net user-controls containers winforms
我去创建了一个包含大量控件的选项卡,其中大部分都包含在我称之为顶级组框的内容中.现在我决定我希望顶级组框的文本是粗体,但没有别的.但是,当我将顶级组框的字体设置为粗体时,其中包含的所有控件也会变为粗体,这是我不想要的.我可以将每个单独控件的粗体属性设置为false,但似乎应该有一种更简单的方法来执行此操作.有任何想法吗?
我可能错过了一些显而易见的东西,比如一个正在盯着我的群组房产 - 并且如果事实证明是这样的话就道歉.
在此先感谢您的帮助.
Cod*_*ray 26
您可以通过在GroupBox的标题上放置标签来绕过问题,但我不一定会建议这样做.
一旦了解了正在发生的事情及其发生的原因,就会出现更好的解决方案.问题是控件的字体(以及其他内容)是环境属性,这意味着子控件继承其父/容器控件的属性.因此,如果将GroupBox设置为使用粗体字体,则默认情况下,其所有子控件都会自动继承bold属性.
当然,关键是默认情况下.仅当您未将子项的属性显式设置为其他项时,环境属性才适用.如果您不希望子控件变为粗体,请全部选中它们并关闭粗体.父/容器的设置将不再覆盖新的自定义设置.
为了使事情变得更容易,您可以将Panel控件添加到GroupBox,停靠/锚定它以填充GroupBox控件的整个客户区域,并将其设置为使用标准的非粗体字体.然后,环境控制规则规定您添加到Panel的子控件默认不会是粗体.这样,您只需更改一个控件的font属性,而不是添加到GroupBox的每个子控件.
这比尝试在GroupBox标题上添加Label控件更好的原因是因为GroupBox被设计为包含控件.您可以利用对接和锚定属性来确保所有内容都正确排列,并且您不必在这样做时与设计师对抗,以确保自定义Label正确覆盖GroupBox控件绘制的默认标签.此外,您不会遇到Z顺序问题或者在运行时将其丑陋的头部重新设置其他重绘问题,例如,Label控件意外地隐藏在 GroupBox 后面并且没有人可以看到它(以及许多其他潜在的snafus) ).
归档时间: |
|
查看次数: |
14886 次 |
最近记录: |