【发布时间】:2010-01-25 09:29:53
【问题描述】:
如何更改表单的 ForColor,将 ForeColor 设置为 RED 但表单仍以白色文本显示。我该如何改变这个。
我指的是标题栏文本颜色
【问题讨论】:
-
ForeColor - 此属性用于更改子控件中文本的颜色,如标签、文本等。
标签: c# winforms visual-studio-2005 c#-2.0
如何更改表单的 ForColor,将 ForeColor 设置为 RED 但表单仍以白色文本显示。我该如何改变这个。
我指的是标题栏文本颜色
【问题讨论】:
标签: c# winforms visual-studio-2005 c#-2.0
标题栏是表单的“非客户”区域。窗体的非客户区由 Windows API 管理,而不是由 .NET 管理。不能通过在表单上设置任何属性来更改它。要更改标题栏文本的颜色,您需要进行自定义绘画。在 Google 上搜索以下术语:非客户区绘画 winforms。您需要直接调用 Win32 API 才能使其工作。你可以从这里得到一些想法:http://geekswithblogs.net/kobush/articles/CustomBorderForms.aspx 和 http://customerborderform.codeplex.com/wikipage?title=Painting%20NonClient%20Area&referringTitle=Home
在过去(即没有 .NET 的时候)更容易做到,因为我们直接使用 Win32 API。我这样做了,为了好玩。而且,我从那以后了解到这些东西对于学习是可以的; IMO 我强烈建议您不要通过将其放入“真实”应用程序中来“滥用”它。 Windows 具有特定的外观和感觉,并且该外观和感觉应该在用户的控制之下,而不是开发人员的控制之下。
【讨论】:
我不确定您要做什么。 ForeColor 更改窗体上子控件的颜色。 这是 ForeColor 和在 windows 窗体上书写的示例。 请注意,通过 Graphics 对象直接在 Form 上书写时不使用 Form 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();
}
}
【讨论】:
您好,如果您想更改表单控件的文本,您必须在所有子控件、标签、复选框、文本框等上单独设置 ForeColor 属性。表单前景色只会影响表单前景色更改后创建的控件。
【讨论】: