- - PR -
MDI子フォーム上のボタンの挙動について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-28 20:10
MDI形式のWindowsアプリケーションについての質問です。
環境は Win2000, VB.NET 2003 です。 [プログラムの概要] MDI子フォーム(Form1)にはボタンとテキストボックスが1つずつあり、 ボタン押下により別のMDI子フォーム(Form2)を開きます。 [現象] Form1のボタンを押下してForm2を開く。 Form2はそのままにして、Form1のテキストボックスをフォーカス。 テキストボックス上でEnterキー押下。 ボタンのClickイベントが走り、Form2が開く! ←問題点 [知りたいこと] 1.問題点を回避する方法 2.なぜButton1_Clickが走るのか ご存知の方がいましたら、ご教授ください。 よろしくお願い致します。
デザイナ上でコントロールのプロパティの変更はしてないです。 | ||||||||
|
投稿日時: 2005-03-28 20:53
こんにちは、じゃんぬ です。
If Button1.Focused = True Then '/ 処理 End If という感じにすれば防げると思います。
これは、わかりません... (^-^A) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-03-30 07:33
> 2.なぜButton1_Clickが走るのか
フォームのデフォルトボタンに指定されているとか。AcceptButtonプロパティが設定されていないか、確認してみてください。 # 似たものに、CancelButtonというのがあります。 なお、Form2を1つしか開きたくない、というのなら、シングルトンパターンを実装するか、フラグで制御します。 _________________ | ||||||||
|
投稿日時: 2005-03-30 09:21
こんにちは、じゃんぬ です。
それが、そうでもないみたいです... (^-^;) こちらでも、確認しました... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-03-30 09:32
私も確認しました。
いまだに解りません。 _________________ たつごろー codeseek こみゅぷらす | ||||||||
|
投稿日時: 2005-03-30 12:01
Roughcutです。
皆様、返信ありがとうございます。 >じゃんぬさん 回避策の提案、ありがとうございます。 ControlクラスにFocusedプロパティってのがあるんですね。知らなかったです。 とりあえず、このやり方で回避したいと思います。 >Jittaさん AcceptButtonプロパティですが、設定されていないことを確認しました。 明示的にNothingを入れたりしたのですが、現象は発生するようです。 MDI子フォームでなければこの現象は発生しないんですけどねぇ・・・ なんでじゃー! この問題ばかり調査できる状況ではないのですが、 時間を見つけて引き続き調査したいと思います。 | ||||||||
|
投稿日時: 2005-04-03 19:42
MDI親ウィンドウのフォームで以下のメソッドをオーバーライドしてください。
protected override bool ProcessDialogKey(Keys keyData) { return true ; } _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 |
1