C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

GridのSelectable変更について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■103280 / inTopicNo.1)  GridのSelectable変更について
  
□投稿者/ やに (1回)-(2024/08/14(Wed) 22:39:06)

分類:[VB.NET/VB2005 以降] 

現在、GrapeCityのMultiRowを利用し
グリッド内に複数のテキストボックスを配置し
一つ目のセルの入力内容によって二つ目以降のSelectableを変更するプログラムを作成しています。
処理の流れとしては下記になります。
1.一つ目のセルを選択し入力
2.Enterキー
3.CellValidating(検索)処理
4.検索結果で二つ目以降のセルのSelectableの変更
この4でSelectableがFalseになる場合、内部的に二つ目のセルフォーカス→二つ目のセルのSelectableをFalse→一つ目のセルをフォーカスとなっているようなのです。
私としては4でFalseになるなら二つ目のセルをフォーカス→SelectableをFalse→三つ目のセルをフォーカス→...と次に次にSelectableがTrueのセルがくるまでフォーカスを移したいのですが
どのように対処すればよろしいでしょうか

ボタン等でSelectableをFalseとすると次のSelectableがTrueのセルにフォーカスが移りました。
また、直接関係はないと思いますがセルのEditModeはEditonEnterとなっています。

稚拙ではありますがご教授お願いいたします。
引用返信 編集キー/
■103283 / inTopicNo.2)  Re[1]: GridのSelectable変更について
□投稿者/ とくま (14回)-(2024/08/15(Thu) 08:54:00)
2024/08/15(Thu) 09:00:33 編集(投稿者)

No103280 (やに さん) に返信
GrapeCity→MESCIUSに社名変更なってから1年近くか。。。いまだに慣れないけど。

PGの操作でイベントが次々起こって不都合が起こっているのであれば、
王道は

@イベントハンドラまでPGで制御して、PG処理中にイベントを起こさなくする
ex)cell.CellChanged -= HandleCellChanged;
cell.CellChanged += HandleCellChanged; // 処理終了後に戻さないと二度とイベント起こらなくなる

もしくは

Aグローバルな処理中フラグ変数を用意して、PG処理中に起こったイベントでは
イベント関数の先頭で return する

ですが、それでは対応できませんか?


あ、VBって書いてあるのにC#で書いちゃった。
ex)RemoveHandler Button1.Click, AddressOf Button1_Click
AddHandler Button1.Click, AddressOf Button1_Click
引用返信 編集キー/
■103286 / inTopicNo.3)  Re[2]: GridのSelectable変更について
□投稿者/ やに (2回)-(2024/08/15(Thu) 14:39:03)
No103283 (とくま さん) に返信
ありがとうございます。
確認させていただいたのですが、

一つ目のセルへのフォーカスが何か処理をしてフォーカスしているわけではなく
MultiRowが自動で行っているようで外すイベント、また処理中フラグでReturnも共に難しそうでした。

一応自己解決として
CellEnter処理でSelectableを変更する処理へと変更しました。

1.一つ目のセルを選択し入力
2.Enterキー
3.CellValidating(検索)処理
4.二つ目のセルEnter(Selectable変更)
5.次にTrueのセルまで移動

回答ありがとうございました。
勝手ではありますが解決済みにさせていただきます。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ