我想知道是否有一个选项可以仅更改Windows窗体中组框左上方的组框文本的颜色,而不是位于该组框内的任何控件或标签。

我知道GroupBox.ForeColor = Color.Blue会将与该框关联的所有文本更改为蓝色,但是也会更改ForeColor的标签和GroupBox中的其他控件。

如何更改组框文本的颜色而不更改其子原色?

最佳答案

ForeColor属性是环境属性。环境属性是
一个控件属性,如果未设置,则从父级检索
控制。


由于您没有在组框中为标签和文本框设置ForeColor,因此它们将使用其父级的ForeColor值。您可以使用以下任一选项来解决此问题:


Panel中放入GroupBoxForeColorGroupBox设置为Blue,并使用设计器显式将ForeColorPanel设置为ControlText。然后将其他控件放在Panel中。这样,您的控件将使用您明确设置的ForeColor中的Panel
自定义PaintGroupBox

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/

10-09 13:47