はじめまして。Wと申します。
環境は VisualStudio2008 Pro VisualBasicです。
早速質問なのですが、
ウィンドウの×とプログラムの終了ボタンを押したとき、"Form1-2"というFormが表示されているかを調べ、表示されている場合は警告メッセージを表示する
というプログラムを作成したいのですがその場合どのようにすればなるのでしょうか。
どなたかご存知の方、回答をお願いします。
解説サイトなど直接教えてくれるとありがたいです。
すみません。
訂正します
ウィンドウの×とプログラムの終了ボタンを押したとき、"Form1-2"というFormが表示されているかを調べ、表示されている場合は警告メッセージを表示する
ではなく
ウィンドウの×とプログラムの終了ボタンを押したとき、"Form1_2"というFormが表示されているかを調べ、表示されている場合は警告メッセージを表示する
でした。
何この間違い探しw
"Form1_2"ってのは閉じられるウィンドウが開いたForm?
それとも別プロセスで開いてるForm?
お早い返事ありがとうございます。
少し訂正として出した範囲が大きすぎました。
以降気をつけます...
>"Form1_2"ってのは閉じられるウィンドウが開いたForm?
>それとも別プロセスで開いてるForm?
同じプロセスです。
aa.exe
|-Form1
|-Form1_2
(続く...)
↑こんな感じです。
VB2005 以降なら、My.Application.OpenForms プロパティ を調べて見て下さい。
My.Application.OpenForms
を調べてみたのですが以下のことしかわかりませんでした。
http://msdn.microsoft.com/ja-jp/library/eh13dca9(VS.80).aspx
あと、My.Application.OpenFormsでは右上の×ボタンを押したときは感知しないのではないでしょうか? ちょっと理解できなかったので...
>My.Application.OpenFormsでは右上の×ボタンを押したときは感知しない
プロパティとイベントをごちゃ混ぜにしてませんか?
My.Application.OpenFormsプロパティはMSDNにあるように
アプリケーションの現在開かれているすべてのフォームのコレクションを取得するものです。
なので、FormClosingイベントなどで、ウィンドウが閉じられるのを感知して
その中でMy.Application.OpenForms内に"Form1_2"という名前のFormがあるかどうかを判定して下さい。
>My.Application.OpenFormsでは右上の×ボタンを押したときは感知しない
プロパティとイベントをごちゃ混ぜにしてませんか?
My.Application.OpenFormsプロパティはMSDNにあるように
アプリケーションの現在開かれているすべてのフォームのコレクションを取得するものです。
なので、FormClosingイベントなどで、ウィンドウが閉じられるのを感知して
その中でMy.Application.OpenForms内に"Form1_2"という名前のFormがあるかどうかを判定して下さい。
回答、ありがとうございます。
>プロパティとイベントをごちゃ混ぜにしてませんか?
たぶん...。ごちゃまぜでした。理解不足です。すみませんでした。
>FormClosingイベントなどで、ウィンドウが閉じられるのを感知して
>その中でMy.Application.OpenForms内に"Form1_2"という名前のFormがあるかどうかを判定して下さい。
というのですがFormClosinについては検索したらサンプルコードがあったので参考にしたのですが
>My.Application.OpenForms内に"Form1_2"という名前のFormがあるかどうかを判定して下さい。
がインターネット上で調べてもよく理解できません...。
サンプルコードなどを教えていただけませんか?
わがままですみません...。
For Each 〜 Nextでぐるぐる回してFormのNameプロパティを確認するだけですよ。
何度も回答していただいて申し訳ないです...
結局、調べてわかったのが
「初心者には無理」
ということがわかりました。
System.Windows.Forms.FormClosingEventArgs)
を使って我慢します。
また何かあったらお願いします。
解決のチェックを入れ忘れました...
ツイート | ![]() |