作成日: 2022/01/21 最終更新日: 2022/05/23
文書種別
使用方法
詳細
FpSpreadクラスメンバであるGetCellFromPixelメソッド呼び出し、およびCellRangeクラス機能の併用によって実現することができます。
◎サンプルコード(VB)
◎サンプルコード(C#)
なお、固定列(行)が設定されている状況でセルインデックスを取得する場合には、HitTestメソッドとGetCellFromPixelメソッドを組み合わせて使用します。
◎サンプルコード(VB)
◎サンプルコード(C#)
※ヘッダやグレイエリア、固定列(行)上など、指定した位置にセルがない場合は(-1,-1)を返します
◎サンプルコード(VB)
Private Sub FpSpread1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FpSpread1.MouseDown
Dim r As FarPoint.Win.Spread.Model.CellRange
r = FpSpread1.GetCellFromPixel(0, 0, e.X, e.Y)
Debug.WriteLine("行インデックス:" + r.Row.ToString)
Debug.WriteLine("列インデックス:" + r.Column.ToString)
End Sub
Dim r As FarPoint.Win.Spread.Model.CellRange
r = FpSpread1.GetCellFromPixel(0, 0, e.X, e.Y)
Debug.WriteLine("行インデックス:" + r.Row.ToString)
Debug.WriteLine("列インデックス:" + r.Column.ToString)
End Sub
◎サンプルコード(C#)
private void fpSpread1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
FarPoint.Win.Spread.Model.CellRange r;
r = fpSpread1.GetCellFromPixel(0, 0, e.X, e.Y);
Console.WriteLine("行インデックス:" + r.Row.ToString());
Console.WriteLine("列インデックス:" + r.Column.ToString());
}
{
FarPoint.Win.Spread.Model.CellRange r;
r = fpSpread1.GetCellFromPixel(0, 0, e.X, e.Y);
Console.WriteLine("行インデックス:" + r.Row.ToString());
Console.WriteLine("列インデックス:" + r.Column.ToString());
}
なお、固定列(行)が設定されている状況でセルインデックスを取得する場合には、HitTestメソッドとGetCellFromPixelメソッドを組み合わせて使用します。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 固定行と固定列の設定
FpSpread1.ActiveSheet.FrozenRowCount = 2
FpSpread1.ActiveSheet.FrozenColumnCount = 2
End Sub
Private Sub FpSpread1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FpSpread1.MouseDown
'ポインタ位置のセルインデックスを取得
Dim htInfo = FpSpread1.HitTest(e.X, e.Y)
Dim cr As CellRange = FpSpread1.GetCellFromPixel(htInfo.RowViewport, htInfo.ColumnViewport, e.X, e.Y)
Debug.WriteLine($"row={cr.Row}, col={cr.Column}")
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
//固定行と固定列の設定
fpSpread1.ActiveSheet.FrozenRowCount = 2;
fpSpread1.ActiveSheet.FrozenColumnCount = 2;
}
private void fpSpread1_MouseDown(object sender, MouseEventArgs e)
{
//ポインタ位置のセルインデックスを取得
var htInfo = fpSpread1.HitTest(e.X, e.Y);
FarPoint.Win.Spread.Model.CellRange cr = fpSpread1.GetCellFromPixel(htInfo.RowViewport, htInfo.ColumnViewport, e.X, e.Y);
Console.WriteLine($"row={cr.Row}, col={cr.Column}");
}
{
//固定行と固定列の設定
fpSpread1.ActiveSheet.FrozenRowCount = 2;
fpSpread1.ActiveSheet.FrozenColumnCount = 2;
}
private void fpSpread1_MouseDown(object sender, MouseEventArgs e)
{
//ポインタ位置のセルインデックスを取得
var htInfo = fpSpread1.HitTest(e.X, e.Y);
FarPoint.Win.Spread.Model.CellRange cr = fpSpread1.GetCellFromPixel(htInfo.RowViewport, htInfo.ColumnViewport, e.X, e.Y);
Console.WriteLine($"row={cr.Row}, col={cr.Column}");
}