C#提示框的背景色和前景色无法通过方法或其他方式改变

3
我想在我的Windows Forms应用程序中使用工具提示。所以我创建了一个简单的方法如下:
        public void MyTooltips(Control c, string m, bool b)
        {
            ToolTip t = new ToolTip();
            t.IsBalloon = b;
            t.SetToolTip(c, m);
            t.BackColor = Color.Crimson;
            t.ForeColor = Color.White;
        }
然后我像这样使用它:MyTooltips(combobox1, "如果没有选择任何内容,请选择零。", true); 在使用中,工具提示背景和前景颜色没有改变。工具提示显示为Windows 7默认的工具提示背景和前景颜色。我该怎么做呢?谢谢。
3个回答

4
HTML渲染器可以实现这一功能。例如:

HTML渲染器 可以做到此事。

htmlTooltip1.Set(textBox1, "<font color=\"red\">What is tooltip?</font>");

4
从相关的MSDN文章中了解到,BackColor属性如下:

除非ToolTip是所有者绘制的,否则将忽略此属性。

如果您想自定义ToolTip的颜色,则必须将OwnerDraw设置为true,并自己绘制控件(使用Draw事件)。

谢谢。我正在努力创建一个方法。但是我发现这很难。也许我应该继续使用Windows的风格 :) - user1372430
通常认为,应该优先使用操作系统的样式而不是自己的样式。您可以通过添加标题和/或图标来引起用户对工具提示的注意,而无需更改颜色。 - Bradley Smith

0

MSDN 的帮助并不完全准确:如果你没有启用视觉样式,BackColor 是可以使用的:在你的 Main() 中注释掉对 Application.EnableVisualStyles() 的调用即可。但是纯粹主义者可能会建议你不要这样做。


这是一个奇怪的建议。应用程序看起来像那样真的很丑。 - Deniz
1
这并不是建议,我只是指出 MSDN 帮助中存在一个错误。而且应用程序并不一定难看,在某些方面它得到了改进(例如 ComboBoxes 看起来更好,依我之见)。我想这取决于应用程序和你选择的视觉风格。 - JonP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接