- - PR -
フォーカスの縦移動
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-19 17:06
いつもお世話になっております。 VB.net2003にてWindowsアプリケーション開発を行っております。 そこで、早速質問なのですが、Form上にコントロールがいくつか配置されていて、 あるコントロール上でEnterキーが押された場合、 押されたコントロールのすぐ下の一番左のコントロールに フォーカスを遷移させたいのですが、なかなかいい方法が思いつかないので、投稿 させていただきました。 フォームに配置されているコントロールを取得し、ループで位置を取得する、 方法しか思いつかずに悩んでおります・・・。 どうか、よろしくお願いいたします。 | ||||
|
投稿日時: 2006-06-19 17:14
Controlクラスに順番(TabIndex)という概念しかない以上、それしかないのでは。 | ||||
|
投稿日時: 2006-06-19 17:15
Enterキー(・A・)イクナイ!
| ||||
|
投稿日時: 2006-06-19 17:24
TabIndex は Tab でのフォーカス遷移も考えて、
当然、意図した順番で設定しなければなりません。 その上で、こちらになるでしょう。 フォームで [Enter] キーが押された時にフォーカスを遷移させる リンク先に書いているように、お勧めはしません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-06-19 18:14
みなさま、さっそくのご返答ありがとうございました。 確かに、EnterキーでのTab遷移はよろしくないとは、承知の上でございます。 ただ、顧客のどうしてもの要望で・・・。 結局、TabIndexが正しく振られているのが前提条件の上下記の方法にて 実装する事にしました。 1.現在アクティブなコントロールの次のTabIndexのコントロールを取得。 2.取得したコントロールが、一定以上、上位置の間隔があいていない場合、無視。 不具合が発生するような、気もしますが、これでいこうと思います。 以上 どうもありがとうございました。 | ||||
|
投稿日時: 2006-06-19 20:22
GroupBox や Panel などのコントロールで、その横のグループを明示化した方が良いですね。 これならば、縦に移動 (?) する判断も正しくできます。 そして、"不具合が発生するような、気もしますが" が、払拭されます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-06-19 21:17
配置場所を2次元管理するクラスを作り、それに登録。
ところで、[TAB]が押されたときにはどうするか、考えてありますか? # 考えてあるならいい | ||||
|
投稿日時: 2006-06-20 09:05
皆様、さっそくのご回答ありがとうございました。 >じゃんぬねっと様 さっそくの、問題点のご指摘ありがとうございます。 指摘点を考慮し考えたいと思います。 >Jitta様 Tabでのフォーカス遷移は通常通りなので、今回は考慮対象外としています。 どうも、ありがとうございました。 |
1