如何更改表单的ForeColor,将ForeColor设置为RED,但表单仍以白色文本显示。我该如何改变呢? 我参考标题栏文字颜色
答案 0 :(得分:3)
标题栏是表单的“非客户”区域。表单的非客户区域由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
由于我们直接使用Win32 API,因此在当天(即没有.NET)时更容易做到。我做到了,好玩。而且,我已经了解到这些事情对于学习是可以的; IMO我强烈建议您不要将其“误用”在“真实”的应用程序中。 Windows具有一定的外观和感觉,外观应该由用户控制,而不是开发人员。
答案 1 :(得分:1)
我不确定你要做什么。 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();
}
}
答案 2 :(得分:1)
如果您想更改表单控件的文本,您必须在所有子控件,标签,复选框,文本框等上设置ForeColor属性。表单ForeColor将仅影响在表单forecolor更改后创建的控件。