作成日: 2023/11/14 最終更新日: 2023/11/14
文書種別
使用方法
詳細
FlexGridでクリックしたセルの値を取得するために、以下のようなイベントが利用可能です。
アプリケーションの要件に応じて使用してください。
① Clickイベント
② MouseClickイベント
③ BeforeRowColChangeイベント
④ BeforeSelChangeイベント

各イベントでの設定方法と簡単なサンプルコードを後半に記載します。
実行してセル[2, 1]をクリックすると、出力ウィンドウに以下のような結果が表示されます。
(出力ウィンドウ)
BeforeRowColChange:BBBB
BeforeSelChange:BBBB
Click:BBBB
MouseClick:BBBB
■ ①および②
これらのイベントはC1FlexGridコントロールのヘッダーやセルなどをクリックしたときに発生します。
イベント内で、C1FlexGridのHitTestメソッドを用いてクリックされたセルの情報(行と列)を取得したのち、c1FlexGrid[行, 列] の形でセルの値を参照します。
※両イベントには、発生タイミングや受け取る引数の型(EventArgsとMouseEventArgs)などに若干の違いがあります。詳細はMSDNなどをご参照ください。
◎サンプルコード(VB)
■ ③および④
これらのイベントは、セルの選択範囲(NewRangeで指定)が変更される前に発生します。
どちらのイベントでも、NewRange.r1, e.NewRange.c1の形で、クリックしたセルの情報(行と列)を取得できます。次いで、c1FlexGrid[行, 列] の形でセルの値を参照します。
※BeforeRowColChangeイベントは、マウスまたはキーボードでのカレントセル移動のほか、コードでRow/Colプロパティが変更されたときにも発生します。
一方、BeforeSelChangeイベントは、選択範囲の変更時のほかにも、マウスドラッグで選択範囲を広げカレントセルは変わらないような場合でも発生します。
◎サンプルコード(VB)
アプリケーションの要件に応じて使用してください。
① Clickイベント
② MouseClickイベント
③ BeforeRowColChangeイベント
④ BeforeSelChangeイベント
各イベントでの設定方法と簡単なサンプルコードを後半に記載します。
実行してセル[2, 1]をクリックすると、出力ウィンドウに以下のような結果が表示されます。
(出力ウィンドウ)
BeforeRowColChange:BBBB
BeforeSelChange:BBBB
Click:BBBB
MouseClick:BBBB
■ ①および②
これらのイベントはC1FlexGridコントロールのヘッダーやセルなどをクリックしたときに発生します。
イベント内で、C1FlexGridのHitTestメソッドを用いてクリックされたセルの情報(行と列)を取得したのち、c1FlexGrid[行, 列] の形でセルの値を参照します。
※両イベントには、発生タイミングや受け取る引数の型(EventArgsとMouseEventArgs)などに若干の違いがあります。詳細はMSDNなどをご参照ください。
◎サンプルコード(VB)
Private Sub C1FlexGrid1_Click(sender As Object, e As EventArgs) Handles C1FlexGrid1.Click
Dim htText = C1FlexGrid1.HitTest()
If htText.Row <> 0 Then
Debug.WriteLine("Click : " & C1FlexGrid1(htText.Row, htText.Column).ToString())
End If
End Sub
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs) Handles C1FlexGrid1.MouseClick
Dim htText = C1FlexGrid1.HitTest()
If htText.Row <> 0 Then
Debug.WriteLine("MouseClick : " & C1FlexGrid1(htText.Row, htText.Column).ToString())
End If
End Sub</></>
◎サンプルコード(C#)
private void c1FlexGrid1_Click(object sender, EventArgs e)
{
var htText = c1FlexGrid1.HitTest();
if (htText.Row != 0)
{
Debug.WriteLine("Click : " + c1FlexGrid1[htText.Row, htText.Column]);
}
}
private void c1FlexGrid1_MouseClick(object sender, MouseEventArgs e)
{
var htText = c1FlexGrid1.HitTest();
if (htText.Row != 0)
{
Debug.WriteLine("MouseClick : " + c1FlexGrid1[htText.Row, htText.Column]);
}
}
■ ③および④
これらのイベントは、セルの選択範囲(NewRangeで指定)が変更される前に発生します。
どちらのイベントでも、NewRange.r1, e.NewRange.c1の形で、クリックしたセルの情報(行と列)を取得できます。次いで、c1FlexGrid[行, 列] の形でセルの値を参照します。
※BeforeRowColChangeイベントは、マウスまたはキーボードでのカレントセル移動のほか、コードでRow/Colプロパティが変更されたときにも発生します。
一方、BeforeSelChangeイベントは、選択範囲の変更時のほかにも、マウスドラッグで選択範囲を広げカレントセルは変わらないような場合でも発生します。
◎サンプルコード(VB)
Private Sub C1FlexGrid1_BeforeRowColChange(sender As Object, e As C1.Win.C1FlexGrid.RangeEventArgs) Handles C1FlexGrid1.BeforeRowColChange
Debug.WriteLine("BeforeRowColChange : " & C1FlexGrid1(e.NewRange.r1, e.NewRange.c1).ToString())
End Sub
Private Sub C1FlexGrid1_BeforeSelChange(sender As Object, e As C1.Win.C1FlexGrid.RangeEventArgs) Handles C1FlexGrid1.BeforeSelChange
Debug.WriteLine("BeforeSelChange : " & C1FlexGrid1(e.NewRange.r1, e.NewRange.c1).ToString())
End Sub
◎サンプルコード(C#)
private void c1FlexGrid1_BeforeRowColChange(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
{
Debug.WriteLine("BeforeRowColChange : " + c1FlexGrid1[e.NewRange.r1, e.NewRange.c1]);
}
private void c1FlexGrid1_BeforeSelChange(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
{
Debug.WriteLine("BeforeSelChange : " + c1FlexGrid1[e.NewRange.r1, e.NewRange.c1]);
}