作成日: 2020/02/13 最終更新日: 2020/02/13
文書種別
使用方法
詳細
グリッド上をマウスホバーした時に、マウスカーソルがある行の背景色を変更する方法として、次のような2通りの手段が考えられます。
(1)MouseEnterCell、MouseLeaveCellイベントを使用
セル内にマウスポインタが入ったときに発生するMouseEnterCellイベントでスタイルを設定し、マウスポインタがセルから離れたときに発生するMouseLeaveCellイベントで、設定したスタイルを削除します。
◎サンプルコード(VB)
(2)MouseMoveイベントを使用
MouseMoveイベントで、HitTestメソッドを使用してマウスポインタのある行番号を取得し、その行にマウスホバー時のスタイルを割り当てます。
◎サンプルコード(VB)
(1)MouseEnterCell、MouseLeaveCellイベントを使用
セル内にマウスポインタが入ったときに発生するMouseEnterCellイベントでスタイルを設定し、マウスポインタがセルから離れたときに発生するMouseLeaveCellイベントで、設定したスタイルを削除します。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' マウスホバー時のスタイル登録
C1FlexGrid1.Styles.Add("HoverStyle")
C1FlexGrid1.Styles("HoverStyle").BackColor = Color.FromArgb(100, Color.LightBlue)
End Sub
Private Sub C1FlexGrid1_MouseEnterCell(sender As Object, e As RowColEventArgs) Handles C1FlexGrid1.MouseEnterCell
C1FlexGrid1.Rows(e.Row).Style = C1FlexGrid1.Styles("HoverStyle")
End Sub
Private Sub C1FlexGrid1_MouseLeaveCell(sender As Object, e As RowColEventArgs) Handles C1FlexGrid1.MouseLeaveCell
C1FlexGrid1.Rows(e.Row).Style = Nothing
End Sub
◎サンプルコード(C#) private void Form1_Load(object sender, EventArgs e)
{
// マウスホバー時のスタイル登録
c1FlexGrid1.Styles.Add("HoverStyle");
c1FlexGrid1.Styles["HoverStyle"].BackColor = Color.FromArgb(100, Color.LightBlue);
}
private void c1FlexGrid1_MouseEnterCell(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
c1FlexGrid1.Rows[e.Row].Style = c1FlexGrid1.Styles["HoverStyle"];
}
private void c1FlexGrid1_MouseLeaveCell(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
c1FlexGrid1.Rows[e.Row].Style = null;
}
(2)MouseMoveイベントを使用
MouseMoveイベントで、HitTestメソッドを使用してマウスポインタのある行番号を取得し、その行にマウスホバー時のスタイルを割り当てます。
◎サンプルコード(VB)
Private hoverRow As Integer = -1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' マウスホバー時のスタイル登録
C1FlexGrid1.Styles.Add("HoverStyle")
C1FlexGrid1.Styles("HoverStyle").BackColor = Color.FromArgb(100, Color.LightBlue)
End Sub
Private Sub C1FlexGrid1_MouseMove(sender As Object, e As MouseEventArgs) Handles C1FlexGrid1.MouseMove
' 前回のホバースタイルの解除
If hoverRow > -1 Then
C1FlexGrid1.Rows(hoverRow).Style = Nothing
End If
' マウスポインタ位置の判別
Dim htInfo As HitTestInfo = C1FlexGrid1.HitTest()
If htInfo.Type = HitTestTypeEnum.Cell Or htInfo.Type = HitTestTypeEnum.RowHeader Then
' 行位置の保存
hoverRow = htInfo.Row
' ホバー時のスタイル設定
C1FlexGrid1.Rows(hoverRow).Style = C1FlexGrid1.Styles("HoverStyle")
Else
' 行位置の初期化
hoverRow = -1
End If
End Sub
◎サンプルコード(C#) int hoverRow = -1;
private void Form1_Load(object sender, EventArgs e)
{
// マウスホバー時のスタイル登録
c1FlexGrid1.Styles.Add("HoverStyle");
c1FlexGrid1.Styles["HoverStyle"].BackColor = Color.FromArgb(100, Color.LightBlue);
}
private void c1FlexGrid1_MouseMove(object sender, MouseEventArgs e)
{
// 前回のホバースタイルの解除
if ((hoverRow > -1))
{
c1FlexGrid1.Rows[hoverRow].Style = null;
}
// マウスポインタ位置の判別
HitTestInfo htInfo = c1FlexGrid1.HitTest();
if (((htInfo.Type == HitTestTypeEnum.Cell)
|| (htInfo.Type == HitTestTypeEnum.RowHeader)))
{
// 行位置の保存
hoverRow = htInfo.Row;
// ホバー時のスタイル設定
c1FlexGrid1.Rows[hoverRow].Style = c1FlexGrid1.Styles["HoverStyle"];
}
else
{
// 行位置の初期化
hoverRow = -1;
}
}
旧文書番号
84929