2011-03-28 16 views
0

버튼 열이 포함 된 winform datagridview가 있습니다. 해당 열에 대해서만 툴팁을 비활성화하고 싶습니다. 툴팁은 여전히 ​​다른 열에 표시되어야합니다. 버튼을 클릭하는 과정에서 툴팁이 나타납니다. 클릭 할 때 클릭 이벤트가 버튼으로 퍼지지 않습니다. 매우 짜증나.전체 .net DataGridView 열에 대한 툴팁을 비활성화하는 방법

나는 CellTooltipNeeded 이벤트를 처리하고 해당 열에 null 또는 빈 문자열을 반환했지만 툴팁은 툴팁에 버튼 텍스트를 표시하는 것으로 바뀌 었습니다. 또한 Column.ToolTipText를 빈 문자열로 설정하려고 시도했지만 열 머리글의 툴팁을 제대로 숨기지 만 다른 모든 행의 툴팁은 여전히 ​​표시됩니다.

전체 열에 대한 툴팁을 비활성화하는 가장 좋은 방법은 무엇입니까? 당신이 원하는 곳

감사 지미

답변

3

이 질문에 대한 답변을 찾고 있었지만 모든 포럼에서 이것이 가능하지 않다고 말했습니다. 그러나 해결책을 찾았습니다.

DataGridView에서 CellMouseEnter 이벤트를 처리합니다. 이벤트 핸들러에는 DataGridViewCellEventArgs에 ColumnIndex 속성이 포함되어 있습니다. 이것을 사용하여 DataGridView.ShowCellToolTips 속성을 설정하십시오. 분명히, 그것은 DataGridViewCellEventArgs 또한 RowIndex 속성을 포함하고 있기 때문에 너무 세포 수준에서이 기능을 켜거나 끌하는 것은 매우 간단합니다,

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 

그리고이 같이합니다 (VB하십시오 실례).

죄송합니다. 게시일로부터 5 년 후에 답변을 발견했습니다.

+0

네, 잘 작동합니다. – Jimmy

1

는 공간으로 설정하면 당신을 얻을합니까? 그렇지 않으면, 점 또는 아주 작은 것을 시도하십시오.

+0

재미있는 해결 방법 : 툴팁이 여전히 표시되는 것처럼 모든 방법을 사용하지는 않지만 전체 버튼 텍스트를 갖는 것보다 낫습니다. – Jimmy

+0

불행히도 그것은 나를 위해 작동하지 않습니다. space 또는'String.Empty'로 설정하면 이전 값으로 유지됩니다. :/ – C4u

+0

@ C4ud3x 그래서 그녀는 String.Empty가 아닌 공간이나 기간으로 설정했다. 그러나 이제 마크 K (Mark K)의 답변이 더 좋은 것으로 보입니다. 마크 K (Mark K)는 곧 테스트 할 것입니다. – Jimmy

0

Mark K's answer을 기준으로 여기에 버튼 열에 대한 툴팁을 숨기고 다른 열 (열 머리글 & 행 헤더 포함)에 표시 할 수있는 정적 방법이 있습니다.

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) 
     { } 
    } 
관련 문제