2016-09-07 8 views
3

非常に多数のWinformsを持つ既存のソリューションを開発し始めました。アプリケーションが実行されているときに、Visual Studioソリューションエクスプローラでデザインタイムフォームを見つける簡単な方法はありますか?ソリューションエクスプローラでアクティブなwinformを見つけよう

注:debug/breakは、モーダルフォーム(ダイアログ)の検索に役立ちます。私はモードレスwinformsを見つけることにも興味があります。私は、これはあなたが望むものであると思います。..簡単な方法として、設計時のメニューやイベントを通じて耕し

+0

「デザインタイムフォーム」とはどういう意味ですか? –

+0

私は彼が実行時に現在アクティブなフォームを意味していると思いますが、ソリューションエクスプローラでそのフォームを見つけ出す方法は – GuidoG

+1

です。デバッガは現在実行中のコードのみを表示できます。あなたが正しいのであれば、アクティブウィンドウ内のコードではありません。 UIクラスの通常の状態は、面白いことが起こるまで辛抱強く待つことです。 Clickイベントと同様です。そうではありません。これは不可能です。ウィンドウのタイトルバーに表示されるテキストは、一致するFormクラスを見つけるための最良の方法です。 –

答えて

1

また、あなたの上にメインフォームをデバッグメニュー項目を作り、その中に入れることができます:

string test = string.Empty; 
foreach (Form item in Application.OpenForms) 
{ 
    test += item.GetType().ToString() + Environment.NewLine; 
} 
MessageBox.Show(test); 

これはマルクスGが提案同じようにあなたのopenformsのリストを与えるが、ためのフォームを作成する必要がなくなりますこの。

もこれを見て:

https://msdn.microsoft.com/en-us/library/system.windows.forms.form.activeform(v=vs.110).aspx

それはあなたがアクティブなフォームを識別できる方法を説明しますが、いつものようにMicrosoftは2つの方法、MDIのための1つを有することで、物事少し複雑になりましたフォームと1つのmdiフォームなし

1

を考慮していない:

Application.OpenForms(click

であなたが得られますあなたのプロジェクトに属するすべての開いているフォームのリスト。 エクスプローラでフォームを簡単に見つけることができます。

+0

アプリケーションの実行中にこれを使用する方法は?何がOPが尋ねたものです。 – GuidoG

+0

ああ、彼はどのフォームが実行されているかを見るために毎秒別のフォームを更新するタイマー(またはイベント)を作成できます。私は問題を見ません... @OPお答えください –

+0

私はむしろアクティブなフォームを見つけるためにすべてのプログラムをしたいと思いますが、それは不可能だと思われます。他の解決方法があるかどうか少し調べるつもりです。 –

関連する問題