我想知道是否有一个选项可以仅更改 Windows 窗体中组框左上角的组框文本的颜色,而不更改组框内的任何控件或标签。
我知道 GroupBox.ForeColor = Color.Blue
会将与该框关联的所有文本更改为蓝色,但它也会更改标签和其他控件的 ForeColor
GroupBox
。
如何更改组框文本的颜色而不更改其子项前景色?
最佳答案
The
ForeColor
property is an ambient property. An ambient property is a control property that, if not set, is retrieved from the parent control.
由于您没有为组框中的标签和文本框设置 ForeColor
,它们将使用其父级的 ForeColor
值。您可以使用以下任一选项解决此问题:
在
GroupBox
中放置一个Panel
,将GroupBox
的ForeColor
设置为蓝色
并使用设计器显式将Panel
的ForeColor
设置为ControlText
。然后将其他控件放入Panel
中。这样,您的控件将使用您显式设置的Panel
的ForeColor
。自定义
GroupBox
的Paint
:Private Sub GroupBox1_Paint(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) Handles GroupBox1.Paint e.Graphics.Clear(Me.GroupBox1.BackColor) GroupBoxRenderer.DrawGroupBox(e.Graphics, Me.GroupBox1.ClientRectangle, _ Me.GroupBox1.Text, Me.GroupBox1.Font, Color.Blue, _ System.Windows.Forms.VisualStyles.GroupBoxState.Normal) End Sub
关于vb.net - 如何更改 GroupBox 文本的前景色而不更改其子前景色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37793517/