winforms 更改窗体的前景色

wfauudbj  于 2023-03-19  发布在  其他
关注(0)|答案(3)|浏览(182)

我如何改变形式的ForColor,已经设置了ForeColor为红色,但形式仍然显示在白色文本。我如何改变这一点。
我指的是标题栏文本颜色

yvgpqqbh

yvgpqqbh1#

标题栏是表单的“非客户端”区域。表单的非客户端区域由windows API而不是. NET管理。它不能通过设置表单上的任何属性来更改。要更改标题栏文本的颜色,您需要进行自定义绘制。请在Google中搜索以下术语:非客户端区域绘制winform。您需要直接调用Win32 API才能使其工作。您可以从这里获得一些想法:Linkhttp://customerborderform.codeplex.com/wikipage?title=Painting%20NonClient%20Area&referringTitle=Home
以前(也就是没有.NET的时候)做起来比较容易,因为我们直接用Win32 API,我做的时候是为了好玩,后来我才知道,这样的事情是可以 * 学习 * 的;我强烈建议你不要把它放在一个“真实的的”应用程序中,Windows有一个特定的外观和感觉,这个外观和感觉应该在用户的控制之下,而不是开发人员的。

cs7cruho

cs7cruho2#

我不确定您要做什么。ForeColor更改窗体上子控件的颜色。下面是使用ForeColor和在windows窗体上写入的示例。请注意,通过Graphics对象直接在窗体上写入时,不使用窗体ForeColor属性...在窗体上放置一个按钮,并将代码放入其事件处理程序中...

private void button1_Click(object sender, EventArgs e)
    {
        this.ForeColor = System.Drawing.Color.Red;
        using (Graphics g = this.CreateGraphics())
        {
            Brush b = new SolidBrush(System.Drawing.Color.Blue);
            g.DrawString("SAMPLE TEXT", SystemFonts.CaptionFont, b, new PointF(50, 50));
            b.Dispose();
        }
    }
omjgkv6w

omjgkv6w3#

嗨,如果您想更改窗体控件的文本,您必须单独设置所有子控件、标签、复选框、文本框等的ForeColor属性。窗体ForeColor将只影响在窗体ForeColor更改后创建的控件。

相关问题