2012-09-14 55 views
0

我向我的应用程序添加了一个工具提示。为什么工具提示不显示?

在控件(DataGridView)中,我希望它显示提示/工具提示,我在“Tooltip on”属性中添加了语句。但是我的言辞没有显示(没有什么确切的)。

为什么?

我添加了一个相关的按钮,它工作得很好。也许DGV本身无法处理工具提示?

新增

下面是一个说明问题

using System; 
using System.Drawing; 
using System.Windows.Forms; 

static class Program 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 

     var form = new Form { 
      Controls = { 
       new Button { Name = "button", Location = new Point(10, 10) }, 
       new DataGridView { Name = "dgv", Location = new Point(10, 50) }, 
      }, 
     }; 

     var tooltip = new ToolTip(); 
     tooltip.SetToolTip(form.Controls["button"], "Button Tooltip"); 
     tooltip.SetToolTip(form.Controls["dgv"], "DGV Tooltip"); 

     Application.Run(form); 
     GC.KeepAlive(tooltip); // it's cheaper than implementing IContainer on the form for this demo 
    } 
} 
+1

你可以显示如何添加这个代码示例..? – MethodMan

+0

这很容易复制。从这里复制和粘贴代码要比将DGV和工具提示放到表单上并设置DGV的扩展属性需要更长的时间。一个完全有效的问题。 – Tergiver

+0

无代码 - 我刚删除组件,并将文本输入到DGV的属性中。 –

回答

0

我找到了答案在这里:DataGridView ToolTipText not showing

private void dgvPlatypus_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e) 
{ 
    e.ToolTipText = "j. cutworm is a punk"; 
} 
+0

因此,解决方法是使用内置于DGV中的每个单元格工具提示。很好,但问题是,“为什么你不能使用ToolTip控件获得单个”全局“工具提示?”阴魂不散。 – Tergiver

+0

真实,如此真实。 –

2

您的文章真的是很难理解你想要什么完整的示例。我希望你想要DataGridView的工具提示,而不是每个单元格或行。

如果你想在控制工具提示,而不是细胞,试试这个:

DataGridView.ShowCellToolTips = False 

toolTip1.SetToolTip(DataGridView, "My DataGridView"); 
+0

是的,你是对的 - 我只是想当用户悬停在DGV上时显示“提示”;正如我上面添加的那样,它可以使用按钮,但不适用于DGV。 –

7

如果设置datagridviews ShowCellToolTips为假,然后向表单添加一个通用工具提示控件,并设置一个文本值以显示它。

+0

它似乎你不能同时拥有celltooltips和一个一般的 – marcusdev

+0

这为我解决了它。 Marcus是对的,如果'ShowCellToolTips'属性为true(默认),那么您使用'ToolTop on 'designer属性设置的工具提示将不会显示。当'ShowCellToolTips'为true时,恕我直言,Visual Studio应该隐藏'ToolTip on <工具提示控制名称>'! – JonP