如何更改GroupBox文本的ForeColor而不更改其子级ForeColor?

2 vb.net groupbox winforms

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

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

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

Rez*_*aei 5

ForeColor属性是环境属性。环境属性是控件属性,如果未设置,则从父控件中检索它。

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

  1. 把一个PanelGroupBox设定ForeColorGroupBoxBlue和集ForeColorPanelControlText显式使用设计。然后将其他控件放入中Panel。这样一来,你的控件将使用ForeColorPanel你设定明确。

  2. 自定义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
    
    Run Code Online (Sandbox Code Playgroud)