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

답변

  • 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이 됩니다.


    VB.NET / VB for MyLife

    2012년 8월 15일 수요일 오전 5:32