2010-01-25 33 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