- PR -

VB.NET Enabled=Falseコントロール選択時のショートカット

1
投稿者投稿内容
CN9A
会議室デビュー日: 2002/11/28
投稿数: 4
投稿日時: 2005-05-11 16:24
お世話になります
コマンドボタンのテキストに「実行(&R)」と記述した場合、
「Alt + R」で対象ボタンのClickイベントを実行できますが、

しかしEnabled=Falseのボタンやテキストボックスそしてラベルをマウスクリックした状態で「R」キーを押した場合でも対象ボタンのClickイベントが実行されます

これを回避する方法はございますでしょうか
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-11 17:29
こんにちは、じゃんぬ です。

引用:

しかしEnabled=Falseのボタンやテキストボックスそしてラベルをマウスクリックした状態で「R」キーを押した場合でも対象ボタンのClickイベントが実行されます


意味が微妙にワカリマセン...。
発生させる手順を書いてください。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
CN9A
会議室デビュー日: 2002/11/28
投稿数: 4
投稿日時: 2005-05-11 17:47
じゃんぬさん、レスありがとうございます

VB.Netのフォーム上に以下のコントロールがあるとします
コマンドボタン1
コマンドボタン2
ラベル1

コマンドボタン1のテキストは「実行(&R)」
コマンドボタン2のテキストは「終了(&Q)」
ラベルのテキストは「テスト」

この画面を実行して、「Altキー」と「R」を押すとコマンドボタン1が
「Altキー」と「Q」を押すとコマンドボタン2を押したことになると思います

「R」と「Q」だけを押しても、各コマンドボタンの処理は実行されません

しかし、ラベル1をマウスクリックした状態で「R」や「Q」を押すと
各コマンドボタンの処理が動作します

また、コマンドボタン2のEnabledをFalseに設定した状態で
コマンドボタン2をマウスでクリックした場合でも「R」を押すとコマンドボタン1の処理が動作します

これら現象を回避する方法があれば教えていただきたいのです

お手数ですが、よろしくお願いいたします
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-11 18:40
こんにちは、じゃんぬ です。
丁寧な説明ありがとうございます。

引用:

しかし、ラベル1をマウスクリックした状態で「R」や「Q」を押すと
各コマンドボタンの処理が動作します


ラベル 1 をマウスクリックした状態でなくともなると思いますし、それは仕様だと思います。
CheckBox にフォーカスを当てて試してみてください。
同じことが起きるハズです。

明示的に、[Alt] + [Key] を押下しないと起きないのは、
TextBox などの "入力ができるコントロール" にフォーカスが移っている時だけです。

引用:

また、コマンドボタン2のEnabledをFalseに設定した状態で
コマンドボタン2をマウスでクリックした場合でも「R」を押すとコマンドボタン1の処理が動作します


これも、上記と同じことです。
ボタン 2 であればいざしらず、ボタン 1 は有効なのですよね?

先の繰り返しですが、
明示的に、[Alt] + [Key] を押下しないと起きないのは、
TextBox などの "入力ができるコントロール" にフォーカスが移っている時だけです。
それ以外の場合では、[Alt] 抜きで動作するのは仕様です。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
CN9A
会議室デビュー日: 2002/11/28
投稿数: 4
投稿日時: 2005-05-11 20:47
じゃんぬさん、ご回答ありがとうございます
 
仕様ですか・・・
VBの開発に携わって5年ちょい
今の今まで知りませんでした

なんか、恥ずかしい。

ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)