0

我需要将格式(特别是粗体文本)应用于 DataGridView 在虚拟模式下使用的工具提示。我可以在 CellToolTipTextNeeded 事件中设置文本,但它不支持 HTML 标签;我应该使用其他语法吗?我不想自己重新实现工具提示支持。

4

2 回答 2

4

您可以使用来自http://www.codeproject.com/KB/GDI-plus/HtmlRenderer.aspx的 HtmlToolTip

To use it with DataGridView create a ToolTip (HtmlToolTip) and add this after the InitalizeComponent() in your form to replace the default tooltip:

System.Reflection.FieldInfo toolTipControlFieldInfo=
typeof(DataGridView).GetField("toolTipControl", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

System.Reflection.FieldInfo toolTipFieldInfo=
toolTipControlFieldInfo.FieldType.GetField("toolTip", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

object toolTipControlInstance =
toolTipControlFieldInfo.GetValue(myDataGridView);

toolTipFieldInfo.SetValue(toolTipControlInstance, myToolTip);

使用 .net 3.5 为我工作

于 2009-02-10T15:44:34.780 回答
1

正如事件的名称所暗示的那样,它只是希望显示文本,而不会有格式。

如果您想要粗体或其他类型的格式,您将不得不自己处理工具提示的显示和绘制。您可以使用 ToolTip 控件来提供帮助,将 OwnerDraw 属性设置为 true 并处理 Draw 事件,但请注意,您很可能必须以一种重要的方式覆盖网格才能在适当的时间进入该事件。

于 2009-01-28T16:41:32.937 回答