C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: フォームの多重起動禁止


(過去ログ 118 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■69124 / inTopicNo.1)  フォームの多重起動禁止
  
□投稿者/ Яアルビノフォックス (9回)-(2013/12/05(Thu) 13:51:55)

分類:[C#] 

開発エディタ Visual Studio 2010、言語c#での質問です。
windowFormでのコードを書いているのですが、フォームを幾つかに分けて作成しています。
フォームを開くとき、Form2.show()のように開いているので元となるフォームも操作可能状態で残っています。

そこでForm2が開いているとき、Form1からForm2起動コマンドが出された場合、前にあったForm2を終了、その後再びForm2を起動したい、と考えています。

Form2.Visibleだと起動しててもノンアクティブ状態ならFalseになるし、WindowsStatesだと起動していないに対応できません。

判定方法と実際の操作コードを教えてください。
よろしくお願いします。
引用返信 編集キー/
■69128 / inTopicNo.2)  Re[1]: フォームの多重起動禁止
□投稿者/ shu (443回)-(2013/12/05(Thu) 15:11:46)
No69124 (Яアルビノフォックス さん) に返信

OpenFormsを使ってこんな感じにするか、自前でインスタンスを管理する。

var opfrm = Application.OpenForms.OfType<Form2>().FirstOrDefault();
if (opfrm != null) opfrm.Dispose();
Form2 form2 = new Form2();
form2.Show();

引用返信 編集キー/
■69138 / inTopicNo.3)  Re[1]: フォームの多重起動禁止
□投稿者/ Jitta (119回)-(2013/12/05(Thu) 22:26:18)
Jitta さんの Web サイト
No69124 (Яアルビノフォックス さん) に返信
> 開発エディタ Visual Studio 2010、言語c#での質問です。
> windowFormでのコードを書いているのですが、フォームを幾つかに分けて作成しています。
> フォームを開くとき、Form2.show()のように開いているので元となるフォームも操作可能状態で残っています。
>
> そこでForm2が開いているとき、Form1からForm2起動コマンドが出された場合、前にあったForm2を終了、その後再びForm2を起動したい、と考えています。
>
> Form2.Visibleだと起動しててもノンアクティブ状態ならFalseになるし、WindowsStatesだと起動していないに対応できません。
>
> 判定方法と実際の操作コードを教えてください。
> よろしくお願いします。

ShowDialog

http://blogs.wankuma.com/jitta/articles/54305.aspx ここに何か作ったような気がする
引用返信 編集キー/
■69179 / inTopicNo.4)  Re[2]: フォームの多重起動禁止
□投稿者/ Яアルビノフォックス (10回)-(2013/12/09(Mon) 08:40:12)
返信遅くなりまして誠に申し訳ありませんでした。

ShowDialogは既に一度使用していましたが、Form2起動後にForm1がいじれないと不便、とのことでShowに変えた次第でありまして。

今回は shu さんのご意見を参考にしたいと思い、これにて解決とさせていただきます。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -