SPREAD for Windows Forms 10.0J サンプルコード集 > 操作 > セル > クリックされたXY座標からセルインデックスを取得する(行列ヘッダ) |
クリックされたヘッダセルの行列インデックス情報についてもCellClickイベントの引数e(CellClickEventArgsクラス)より取得することができます。(ヘッダクリックの有無も取得できます) また同引数よりXY座標の取得も可能ですが、例えばMouseDownイベントを実装し、取得したXY座標からクリックされたヘッダセルの行列インデックス情報を取得することもできます。
具体的にはSpreadViewクラスのGetColumnHeaderCellFromPixelメソッド呼び出しを行うことで、対象となるセル情報がCellRangeクラス形式で取得されますので、各メンバより列ヘッダにおける行列インデックス情報等を取得します。(行ヘッダの場合はGetRowHeaderCellFromPixelメソッド呼び出し)
private void fpSpread1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { //列ヘッダセルのマウスクリックポイントよりセルインデックスを取得します FarPoint.Win.Spread.SpreadView sv = fpSpread1.GetRootWorkbook(); FarPoint.Win.Spread.Model.CellRange cr; cr = sv.GetColumnHeaderCellFromPixel(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 sv As FarPoint.Win.Spread.SpreadView = FpSpread1.GetRootWorkbook() Dim cr As FarPoint.Win.Spread.Model.CellRange cr = sv.GetColumnHeaderCellFromPixel(e.X, e.Y) Console.WriteLine("マウスクリックされた列ヘッダセルの行インデックス:" + cr.Row.ToString) Console.WriteLine("マウスクリックされた列ヘッダセルの列インデックス:" + cr.Column.ToString) End Sub