2012-10-12 69 views
3

我的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"; 


     } 
} 

它顯示我對那些滿足我的條件,所有這些單元格內容並不滿足我的條件單元的消息。有沒有辦法從我的網格視圖中刪除該工具提示,並只顯示我的自定義工具提示? 如果有什麼辦法,請幫我...

+0

如何在if後添加'else'語句? 'else cell.ToolTipText = string.Empty' –

+0

我嘗試通過添加一個ele case與cell.ToolTipText = null,但它不會爲我工作。 – ManjuVijayan

+0

我也試過這個,但沒有變化。 – ManjuVijayan

回答

3

不幸的是,DataGridView控件不支持這一點。其ShowCellToolTips屬性只能用於全局禁用工具提示。其中顯示工具提示的情況下,被記錄爲:

  • DataSource屬性的值是不nullVirtualMode屬性的值是true,以及用於 CellToolTipTextNeeded事件的處理程序設置 DataGridViewCellToolTipTextNeededEventArgs.ToolTipText財產除String.Empty以外的 值。

  • 該單元格的ToolTipText屬性的值不是String.Empty。當有一個 CellToolTipTextNeeded事件處理程序時,設置此屬性不起作用,因爲獲取 屬性的值會自動引發該事件並返回事件處理程序中指定的工具提示文本 。

  • 單元格值在單元格顯示中被截斷。當單元格ToolTipText屬性值的值爲String.Empty時,截斷單元值的完整 值顯示在工具提示中。

正如你所看到的,有沒有辦法避免第三種情況:如果ShowCellToolTipstrue和單元格的值被截斷,將顯示包含的全部價值提示。

+0

你的意思是我不能做我的要求????? – ManjuVijayan

+0

不帶'DataGridView',否則,除非可以確保沒有截斷的單元格內容。 –

+0

什麼是截斷的單元格內容? – ManjuVijayan

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; 
    } 
} 
相關問題