본문 바로가기

VB.NET

[TIPS] DataGridView의 셀에 툴 힌트(ToolTip)를 표시하는 방법

반응형

DataGridView의 ShowCellToolTips 프롭퍼티가 True이면, 셀에 ToolTip이 표시됩니다. ShowCellToolTips 프롭퍼티는 디폴트값이 True로써 셀의 폭이 너무 좁아서 텍스트가 표시 다 할 수 없을 때에, 그 텍스트의 내용이 ToolTip으로서 표시됩니다.

 

 


ToolTipText 프롭퍼티를 사용한다.


 

셀에 표시하는 ToolTip의 내용을 지정하려면 셀(DataGridViewCell)의 ToolTipText 프롭퍼티를 사용하면 됩니다.
헤더 셀에 표시하는 ToolTip도 헤더 셀을 취득하고, 보통 셀과 같이 ToolTipText 프롭퍼티로 설정할 수 있습니다. 단지, 열헤더에 표시하는 ToolTip은, DataGridViewColumn.ToolTipText 프롭퍼티에서도 설정할 수 있습니다.

 

'셀에 표시하는ToolTip을 설정한다.
DataGridView1(0, 0).ToolTipText = "이 셀은 변경할수 없습니다."

'열헤더에 표시하는ToolTip을 설정한다.
DataGridView1.Columns(0).ToolTipText = "이 행에는 숫자를 입력할수 있습니다."

'행헤더에 표시하는 ToolTip을 설정한다.
DataGridView1.Rows(0).HeaderCell.ToolTipText = "이 행의 셀은 변경할수 없습니다."

 

 


CellToolTipTextNeeded 이벤트를 사용한다. 


 

다수의 셀에 ToolTip을 설정하는 경우는, 하나 하나의 셀의 ToolTipText 프롭퍼티를 설정하는 방법은, 효율적이라고는 할 수 없습니다. 이러한 경우는, CellToolTipTextNeeded 이벤트를 사용하면 좋을 것입니다.
셀의 현재 상태에 의해서 ToolTip에 표시시키는 문자열을 변경시키고 싶은 경우에도, CellToolTipTextNeeded는 도움이 됩니다.
다만 이 이벤트는, DataSource 프롭퍼티가 설정되어 있는지, VirtualMode 프롭퍼티가 True일 때 밖에 발생하지 않습니다.
이하의 예에서는, 단순하게 셀의 위치를 ToolTip으로 표시하고 있습니다.

 

'CellToolTipTextNeeded 이벤트 핸들러
Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, _
        ByVal e As DataGridViewCellToolTipTextNeededEventArgs) _
        Handles DataGridView1.CellToolTipTextNeeded
    e.ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString()
End Sub

 

이 방법에서는 헤더에도 ToolTip이 표시됩니다. 헤더의 경우는, 행 헤더이면 [e.ColumnIndex]가

-1에, 열헤더이면 [e.RowIndex]가 -1이 됩니다.

반응형