MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
クリックされたXY座標からセルインデックスを取得する

MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集 > 操作 > セル > クリックされたXY座標からセルインデックスを取得する

通常、クリックされたセルの行列インデックス情報はCellClickイベントの引数e(CellClickEventArgsクラス)より取得することができます。また同引数よりXY座標の取得も可能ですが、例えばMouseDownイベントを実装し、取得したXY座標からクリックされたセルの行列インデックス情報を取得することもできます。

具体的にはFpSpreadクラスのGetCellFromPixelメソッド呼び出しを行うことで、対象となるセル情報がCellRangeクラス形式で取得されますので、各メンバより行列インデックス情報等を取得します。以下のサンプルでは、シート上の通常セルをクリックした場合のインデックス取得例を紹介しています。なお、固定行(列)上での取得方法については下記メモをご参照ください。


 private void fpSpread1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
 {

   //固定行列(および行列ヘッダ)ではない通常セルのマウスクリックポイントよりセルインデックスを取得します
   FarPoint.Win.Spread.Model.CellRange cr;
   cr = fpSpread1.GetCellFromPixel(0, 0, e.X, e.Y);

   Console.WriteLine("マウスクリックされたセルの行インデックス:" + cr.Row.ToString());
   Console.WriteLine("マウスクリックされたセルの列インデックス:" + cr.Column.ToString());

 }
 Private Sub FpSpread1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FpSpread1.MouseDown

   '固定行列(および行列ヘッダ)ではない通常セルのマウスクリックポイントよりセルインデックスを取得します
   Dim cr As FarPoint.Win.Spread.Model.CellRange
   cr = FpSpread1.GetCellFromPixel(0, 0, e.X, e.Y)

   Console.WriteLine("マウスクリックされたセルの行インデックス:" + cr.Row.ToString)
   Console.WriteLine("マウスクリックされたセルの列インデックス:" + cr.Column.ToString)

 End Sub