注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。
DataGridViewのShowCellToolTipsプロパティがTrueであれば、セルにToolTipが表示されます。ShowCellToolTipsプロパティはデフォルトでTrueで、セルの幅が狭すぎてテキストが表示しきれない時に、そのテキストの内容がToolTipとして表示されます。
セルに表示するToolTipの内容を指定するには、セル(DataGridViewCell)のToolTipTextプロパティを使用します。
ヘッダーセルに表示するToolTipも同様に、こちらの方法によりヘッダーセルを取得して、普通のセルと同じようにToolTipTextプロパティで設定できます。ただ、列ヘッダーに表示するToolTipは、DataGridViewColumn.ToolTipTextプロパティでも設定できます。
'セルに表示するToolTipを設定する DataGridView1(0, 0).ToolTipText = "このセルは変更できません" '列ヘッダーに表示するToolTipを設定する DataGridView1.Columns(0).ToolTipText = "この列には数字を入力できます" '行ヘッダーに表示するToolTipを設定する DataGridView1.Rows(0).HeaderCell.ToolTipText = "この行のセルは変更できません"
//セルに表示するToolTipを設定する DataGridView1[0, 0].ToolTipText = "このセルは変更できません"; //列ヘッダーに表示するToolTipを設定する DataGridView1.Columns[0].ToolTipText = "この列には数字を入力できます"; //行ヘッダーに表示するToolTipを設定する DataGridView1.Rows[0].HeaderCell.ToolTipText = "この行のセルは変更できません";
多数のセルに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
//CellToolTipTextNeededイベントハンドラ private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e) { e.ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString(); }
この方法ではヘッダーにもToolTipが表示されます。ヘッダーの場合は、行ヘッダーであれば「e.ColumnIndex」が-1に、列ヘッダーであれば「e.RowIndex」が-1になります。