- - PR -
MDI子フォームにおけるアクティブウインドウの遷移
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-05 13:42
現在、以下の環境でWindowsフォームによるアプリを開発中です。
.NET Framework 1.0 言語 C# OS Windows2000 MDIフォームを利用していますが、子フォームの一部分をクリックしたときに、 そのフォームが最前面に表示されるようにしたいと考えています。 (通常はタイトルバーをクリックしたときのみ最前面に表示される) 現在は、フォーム、パネル、テキストボックスなどのコントロールからClickイベントを取得し(フォームデザイナで設定)共通のメソッドを呼び出し、そのメソッド内で this.Focus(); を呼び出して対応しています。 しかしこの方法では、コントロールを増やすたびに設定しなければならないし、 ボタンコントロールなどの場合、Clickイベントは必ず他で必要ですから、 共通のものは使えません。 他に何かいい方法は無いものでしょうか? | ||||
|
投稿日時: 2003-12-05 18:05
最前面に表示というのは、複数の子フォームが開いている場合、
ある子フォームをクリックしたときに、MDI親フォーム内において、そのクリックした子フォームを他の子フォームより前に表示させたいということです。 伝わりますでしょうか?よろしくお願いします。 | ||||
|
投稿日時: 2003-12-05 19:10
こんにちわ。諸農です。
子フォームのフォーカスをセットするイベントハンドラを、 フォーム上のコントロール全部にセットしてみたらいかがでしょうか?
ではでは(^^)/ _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2003-12-08 11:18
諸農様、お返事ありがとうございます。
教えていただいたコードで希望どおりの動作になりましたが、もう一つよろしいでしょうか? 子フォーム上のTabControlやPanelの中に配置されているLabelやTextBoxなどにイベントハンドラをセットすることができなかったので、ソースを修正しました。 以下のようなコードになったのですが・・・
もちろん動作上は問題ないのですが、見栄えがあまりよくないので、 他にソースの書き方は無いものかと思い、ご意見をいただきたいと思いました。 よろしくお願いします。 | ||||
1
