2010-01-25 55 views
0

如何更改表格的ForColor,将ForeColor设置为红色,但窗体仍然以Whte文本显示。我如何改变这一点。
我指的是标题栏文字颜色更改表格的ForeColor

+0

ForeColor - 此属性用于更改子控件中的文本颜色,如标签,文本等。 – Anuraj 2010-01-25 09:42:23

回答

3

标题栏是窗体的“非客户端”区域。表单的非客户区由Windows API管理,而不是由.NET管理。它不能通过设置表单上的任何属性进行更改。要更改标题栏文本的颜色,您需要进行自定义绘画。搜索Google的条款,如:非客户区绘画winforms。您需要直接调用Win32 API才能正常工作。你可以从这里得到一些想法:​​3210和http://customerborderform.codeplex.com/wikipage?title=Painting%20NonClient%20Area&referringTitle=Home

因为我们直接使用Win32 API,所以在当天(即没有.NET的时候)比较容易。我做到了,为了好玩。而且,我从那以后就知道这样的事情对学习是可以的;国际海事组织我强烈建议你不要把它误用到“真实”的应用程序中。 Windows有一定的外观和感觉,并且外观和感觉应该由用户控制,而不是开发人员。

1

我不知道你在做什么。 ForeColor更改窗体上的子控件的颜色。 以下是ForeColor和用于在窗体上书写的示例。 注意的是,将前景色属性不使用通过Graphics对象直接在表格上书写时... 把你的窗体上的按钮,并把代码中的事件处理程序...

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(); 
     } 
    } 
+0

感谢您的回复Oldbrazil.What您说的是对的,但那么我该如何更改窗体的标题文本ie;窗体顶部的“Form1”。我需要改变这种颜色。我该怎么做? – 2010-01-25 09:58:40

+0

好吧,改变标题区的出现似乎并不那么简单,它通常由系统处理(认为用户可以为他们的窗口定义主题...) 看看这里,我认为这是你在找什么: http://www.codeproject.com/KB/dialog/CustomizeTitleBar.aspx – oldbrazil 2010-01-25 10:27:58

1

如果喜您想要更改表单控件的文本,您必须在所有子控件,标签,复选框,文本框等单独设置ForeColor属性。表单ForeColor只会影响在更改表单前景后创建的控件。

+0

糟糕我正在使用VS 2005。 :( – 2010-01-25 10:06:25