'宣言 Public Event MouseEnterCell As RowColEventHandler
public event RowColEventHandler MouseEnterCell
イベント データ
イベント ハンドラが、このイベントに関連するデータを含む、RowColEventArgs 型の引数を受け取りました。次の RowColEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
Cancel | 操作をキャンセルするかどうかを示す値を取得または設定します。 |
Col | イベントが発生した列のインデックスを取得します。 |
Row | イベントが発生した行のインデックスを取得します。 |
解説
多くのアプリケーションでマウスを追跡し、現在マウスポインタの下にあるセルを強調表示するような処理を実装しています。この動作は、 System.Windows.Forms.Control.MouseMoveイベントを使用しても実現可能です。ただし、 MouseMove イベントはマウスが同じセル内で移動している間も発生するため、この方法はあまり効率的ではありません。
MouseEnterCell イベントはセルからマウスが離れるまで発生するので、効率的にマウスを追跡することができます。
使用例
下記のコードではマウスポインタを追跡し、マウスの下にあるセルをハイライト表示します。
Private Sub Form1_Load(・・・ ' カスタムスタイルを作成します。 flex.Styles.Add("track") flex.Styles("track").BackColor = Color.Gold End Sub Private Sub flex_MouseEnterCell(・・・ ' セル内にマウスポインタが入ればスタイルを設定します。 flex.SetCellStyle(e.Row, e.Col, flex.Styles("track")) End Sub Private Sub flex_MouseLeaveCell(・・・ ' セルから出た際にスタイルを削除します。 flex.SetCellStyle(e.Row, e.Col, CType(Nothing, C1.Win.FlexGrid.CellStyle)) End Sub
private void Form1_Load(・・・ { // カスタムスタイルを作成します。 flex.Styles.Add("track"); flex.Styles["track"].BackColor = Color.Gold; } private void flex_MouseEnterCell(・・・ { // セル内にマウスポインタが入ればスタイルを設定します。 flex.SetCellStyle(e.Row, e.Col, flex.Styles["track"]); } private void flex_MouseLeaveCell(・・・ { // セルから出た際にスタイルを削除します。 flex.SetCellStyle(e.Row, e.Col, (C1.Win.FlexGrid.CellStyle)null); }
参照