禁用某些单元格的工具提示

时间:2012-10-12 07:31:23

标签: c# winforms datagridview tooltip

我的Windows窗体中有一个gridview。现在我使用以下代码显示自定义工具提示

private void Audit_Dg_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)


{
          if (e.ColumnIndex == 7 || e.ColumnIndex == 8 || e.ColumnIndex == 10 || e.ColumnIndex == 11 && e.RowIndex >= 0)
          {           
              DataGridViewCell cell = this.Audit_Dg.Rows[e.RowIndex].Cells[e.ColumnIndex];

          cell.ToolTipText = "Click Here To View The Message";


      }
}

它显示我的信息,满足我的条件的那些细胞和所有那些的细胞内容不满足我的条件。有没有办法从我的网格视图中删除该工具提示并只显示我的自定义工具提示? 如果有什么办法,请帮助我...

2 个答案:

答案 0 :(得分:3)

不幸的是,DataGridView控件不支持此功能。其ShowCellToolTips属性只能用于全局禁用工具提示。显示工具提示的情况记录为:

  
      
  • DataSource属性的值不是null,或者VirtualMode属性的值是true,并且是CellToolTipTextNeeded属性的值   DataGridViewCellToolTipTextNeededEventArgs.ToolTipText事件设置了   String.Empty属性到   除ToolTipText以外的其他值。

  •   
  • 单元格的String.Empty属性的值不是CellToolTipTextNeeded。如果有,则设置此属性无效   ToolTipText事件处理程序,因为获取的值   property会自动引发事件并返回ToolTip文本   在事件处理程序中指定。

  •   
  • 单元格值在单元格显示中被截断。当单元格String.Empty属性值的值为ShowCellToolTips时,则为满   截断的单元格值的值显示在工具提示中。

  •   

如您所见,无法避免第三种情况:如果true为{{1}}并且单元格的值被截断,则包含完整值的工具提示将< / em>显示。

答案 1 :(得分:0)

正如上一个答案中所指出的,当未设置工具提示且列宽不足以显示单元格文本时,将显示默认工具提示。通过使列宽足以显示文本或挂钩CellFormatting事件并提供适合列的文本,可以避免默认工具提示,例如

private void grd_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
  switch (e.ColumnIndex)
  {
    case 7:
    case 8:
      e.Value = string.Empty;
      e.FormattingApplied = true;
      break;
  }
}