我想知道是否有一个选项可以仅更改Windows窗体中组框左上方的组框文本的颜色,而不是位于该组框内的任何控件或标签。
我知道GroupBox.ForeColor = Color.Blue
会将与该框关联的所有文本更改为蓝色,但是也会更改ForeColor
的标签和GroupBox
中的其他控件。
如何更改组框文本的颜色而不更改其子原色?
最佳答案
ForeColor
属性是环境属性。环境属性是
一个控件属性,如果未设置,则从父级检索
控制。
由于您没有在组框中为标签和文本框设置ForeColor
,因此它们将使用其父级的ForeColor
值。您可以使用以下任一选项来解决此问题:
在Panel
中放入GroupBox
将ForeColor
的GroupBox
设置为Blue
,并使用设计器显式将ForeColor
的Panel
设置为ControlText
。然后将其他控件放在Panel
中。这样,您的控件将使用您明确设置的ForeColor
中的Panel
。
自定义Paint
的GroupBox
:
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 - 如何在不更改其子ForeColor的情况下更改GroupBox文本的ForeColor?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37793517/