- PR -

Enterキーでボタンクリックイベントを発生させないようにする方法

1
投稿者投稿内容
みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2008-01-15 17:51
いつもお世話になっております。

Windowsアプリケーションを開発しております。

フォームのボタンにフォーカスをあててEnterキーを押下すると
クリックイベントが発生してしまいます。
enterキーを無効にする、もしくはクリックイベント内で
enterキーが押されたことを判断して処理を抜ける方法は
ありますでしょうか?

ご教授よろしくお願い致します。


環境は下記の通りです。
Windows XP Professional Version 2002 SP2
Visual Studio 2005 Professional Edition
.NET Framework Version 2
使用言語 vb.net
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-01-15 18:23
引用:

みかんさんの書き込み (2008-01-15 17:51) より:

フォームのボタンにフォーカスをあててEnterキーを押下するとクリックイベントが発生してしまいます。


"してしまう" という書き方は適切ではないかもしれません。 発生するのが Windows の仕様であり正しい動作です。

引用:

enterキーを無効にする、もしくはクリックイベント内でenterキーが押されたことを判断して処理を抜ける方法はありますでしょうか?


このような制御はお勧めはしませんが、ProcessCmdKey メソッドなど上位のキー処理メソッドをオーバーライドすれば握り潰すことも、判断することも可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-01-15 18:36
Clickイベントのかわりに、MouseClickイベントを使うのはどうでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-01-15 18:42
引用:

rainさんの書き込み (2008-01-15 18:36) より:

Clickイベントのかわりに、MouseClickイベントを使うのはどうでしょうか。


そういえば 2.0 から追加されたイベントでありましたね。 ただ名前どおりの働きをしてくれるようで、[Space] キーによる Click も無効になってしまうようですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2008-01-17 16:33
ご回答ありがとうございます。

MouseClickイベントでうまくいきました。
rainさん、じゃんぬねっとさん、ありがとうございました。
1

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