実現したいこと
ReoGridで、ダブルクリックしたセル位置を取得したいです。
「MainReoGrid_DoubleClick」というのがダブルクリックイベントだと思うのですが
E列F列などをボタンセルにしていると、
ボタンをダブルクリックしたときに別のセル値が帰ってきてしまいます。
発生している問題・分からないこと
var CelAddress = sheet.SelectionRange.ToAddress();
確かにこれだと過去選択したところが表示されてもおかしくないなと思います。
実際、ボタン列をダブルクリックした際は、前回選択していた範囲が選択されたままで
そこの情報を取得していました。
ボタン列だろうとそうでなかろうと、ダブルクリックしたセル位置を取得したいです。
該当のソースコード
C#
1public unvell.ReoGrid.Worksheet sheet; 2 3 private void Form1_Load(object sender, EventArgs e) 4 { 5 sheet = MainReoGrid.CurrentWorksheet; 6 7 for (int i = 1; i < MaxRow; i++) 8 { 9 var ButtonA = new ButtonCell("ボタンA"); 10 sheet[i, 5] = ButtonA; 11 ButtonA.Click += (s, ex) => ButtonA_Click(s, ex); 12 var ButtonB = new ButtonCell("ボタンB"); 13 sheet[i, 6] = ButtonB; 14 ButtonB.Click += (s, ex) => ButtonB_Click(s, ex); 15 } 16 } 17 18 private void ButtonA(object sender, EventArgs e) 19 { 20 var ClickButtonRow = ((ButtonCell)sender).Cell.Row;//クリック位置がちゃんとわかる 21 } 22 23 private void MainReoGrid_DoubleClick(object sender, EventArgs e) 24 { 25 var CelAddress = sheet.SelectionRange.ToAddress(); 26 //6~7列目のボタンセルダブルクリックしても反応しちゃう 27 28 if (sheet.SelectionRange.Row != 0 ) 29 { 30 switch (sheet.SelectionRange.Col) 31 { 32 case 0: 33 Console.WriteLine("1列目"); 34 break; 35 case 1: 36 Console.WriteLine("2列目"); 37 break; 38 case 2: 39 Console.WriteLine("3列目"); 40 break; 41 case 3: 42 Console.WriteLine("4列目"); 43 break; 44 case 4: 45 Console.WriteLine("5列目"); 46 break; 47 default: 48 Console.WriteLine("defaultが実行されました"); 49 break; 50 } 51 } 52 53 }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ボタンをクリックしたときのイベントを見ると
ボタンセルの場合は
((ButtonCell)sender).Cell.Row//行の場合
で取得できているみたいです。
senderの使い方というか、どうやったらほしい情報にたどり着けるか
1週間探しましたが見つかりませんでした。
補足
unvell.ReoGrid.dll 3.0.0
.NET Framework 4.7.2
Winform
C#
![guest](/img/icon/icnUserSample.jpg)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。