如何禁用整个.net DataGridView列的工具提示

如何禁用整个.net DataGridView列的工具提示,.net,winforms,datagridview,tooltip,.net,Winforms,Datagridview,Tooltip,我有一个WinFormDataGridView,其中包含一列按钮。我只想禁用该列的工具提示——其他列的工具提示仍应显示。我发现工具提示妨碍了单击按钮——当单击工具提示时,单击事件不会渗透到按钮。很烦人 我尝试处理CellToolTipRequired事件并为该列返回null或空字符串,但随后工具提示只是恢复为在工具提示中显示按钮文本。我还尝试将Column.ToolTipText设置为空字符串,这样可以正确隐藏列标题的工具提示,但所有其他行的工具提示仍会显示 禁用整列工具提示的最佳方法是什么 谢

我有一个WinFormDataGridView,其中包含一列按钮。我只想禁用该列的工具提示——其他列的工具提示仍应显示。我发现工具提示妨碍了单击按钮——当单击工具提示时,单击事件不会渗透到按钮。很烦人

我尝试处理CellToolTipRequired事件并为该列返回null或空字符串,但随后工具提示只是恢复为在工具提示中显示按钮文本。我还尝试将Column.ToolTipText设置为空字符串,这样可以正确隐藏列标题的工具提示,但所有其他行的工具提示仍会显示

禁用整列工具提示的最佳方法是什么

谢谢
Jimmy将其设置为空格是否可以达到您的目的?否则,尝试一个点或一些非常小的东西。

将它设置为一个空格是否可以达到你想要的效果?否则,尝试一个点或一些非常小的东西。

我正在寻找这个问题的答案,但所有论坛都表示这是不可能的。然而,我确实找到了解决办法

在DataGridView上,处理CellMouseEnter事件。在事件处理程序中,
DataGridViewCellEventArgs
包含ColumnIndex属性。使用该选项设置
DataGridView.ShowCellToolTips
属性。像这样(请原谅VB):

私有子MyDataGridView\u CellMouseEnter(发送方作为对象,e作为DataGridViewCellEventArgs)处理DataGridView.CellMouseEnter
MyDataGridView.ShowCellToolTips=e.ColumnIndex=
端接头
而且,很明显,在单元格级别打开或关闭它也非常简单,因为
DataGridViewCellEventArgs
还包含一个
RowIndex
属性


我只是很抱歉在这篇文章发布五年后我发现了一个答案

我一直在寻找这个问题的答案,但所有论坛都表示这是不可能的。然而,我确实找到了解决办法

在DataGridView上,处理CellMouseEnter事件。在事件处理程序中,
DataGridViewCellEventArgs
包含ColumnIndex属性。使用该选项设置
DataGridView.ShowCellToolTips
属性。像这样(请原谅VB):

私有子MyDataGridView\u CellMouseEnter(发送方作为对象,e作为DataGridViewCellEventArgs)处理DataGridView.CellMouseEnter
MyDataGridView.ShowCellToolTips=e.ColumnIndex=
端接头
而且,很明显,在单元格级别打开或关闭它也非常简单,因为
DataGridViewCellEventArgs
还包含一个
RowIndex
属性

我只是很抱歉在这篇文章发布五年后我发现了一个答案

基于,这里有一个静态方法,可用于隐藏按钮列的工具提示,并显示其他列(包括列标题和行标题)的工具提示

public静态void CellMouseenterHandlerToHideTooltIPsforButtonClumns(对象发送方,DataGridViewCellEventArgs e)
{
尝试
{
DataGridView grid=发送方为DataGridView;
grid.ShowCellToolTips=(e.RowIndex<0)| |(e.ColumnIndex<0)| |!(grid.Columns[e.ColumnIndex]是DataGridViewButtonColumn);
}
捕获(例外)
{ }
}
基于,这里有一个静态方法,可用于隐藏按钮列的工具提示,并显示其他列(包括列标题和行标题)的工具提示

public静态void CellMouseenterHandlerToHideTooltIPsforButtonClumns(对象发送方,DataGridViewCellEventArgs e)
{
尝试
{
DataGridView grid=发送方为DataGridView;
grid.ShowCellToolTips=(e.RowIndex<0)| |(e.ColumnIndex<0)| |!(grid.Columns[e.ColumnIndex]是DataGridViewButtonColumn);
}
捕获(例外)
{ }
}

有趣的解决方法:)我并没有完全理解它,因为工具提示仍然会出现。。。但这比有完整的按钮文本要好。不幸的是,它对我不起作用。将其设置为空格或
String.Empty
时,它将保持原来的值:/@C4ud3x这就是为什么她说将其设置为空格或句点,而不是String.Empty。然而,马克K现在似乎有了一个更好的答案,我将很快对其进行测试。@C4ud3x:马克K的方法很好;还请看我的c#方法。有趣的工作是:)它并没有让我完全理解,因为工具提示仍然会出现。。。但这比有完整的按钮文本要好。不幸的是,它对我不起作用。将其设置为空格或
String.Empty
时,它将保持原来的值:/@C4ud3x这就是为什么她说将其设置为空格或句点,而不是String.Empty。然而,马克K现在似乎有了一个更好的答案,我将很快对其进行测试。@C4ud3x:马克K的方法很好;请参阅我的c#方法。
Private Sub MyDataGridView_CellMouseEnter(sender As Object, e as DataGridViewCellEventArgs) Handles DataGridView.CellMouseEnter
    MyDataGridView.ShowCellToolTips = e.ColumnIndex = <the Column # I want to show Tooltips>
End Sub
    public static void CellMouseEnterHandlerToHideTooltipsForButtonColumns(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            DataGridView grid = sender as DataGridView;
            grid.ShowCellToolTips = (e.RowIndex < 0) || (e.ColumnIndex < 0) || !(grid.Columns[e.ColumnIndex] is DataGridViewButtonColumn);
        }
        catch (Exception)
        { }
    }