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

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

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

Re[1]: 別フォーム表示中かどうかを判別する方法


(過去ログ 173 を表示中)

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

■99432 / inTopicNo.1)  別フォーム表示中かどうかを判別する方法
  
□投稿者/ dfhghg (1回)-(2022/04/05(Tue) 22:04:57)

分類:[C#] 

フォーム1ロード時に
Form2 f2 new Form2();

適当なボタンクリック時に
f2.ShowDialog(this);
でフォーム2を表示しています。

この時にフォーム1が非アクティブになるので
private void Form1_Deactivate(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
これにより最小化されてしまいます。
Form2表示中はForm1が非アクティブになっても最小化させたくないのですが
Form2表示中を取得することが調べてもよくわかりませんでした。
ご教示願いないでしょうか。
引用返信 編集キー/
■99433 / inTopicNo.2)  Re[1]: 別フォーム表示中かどうかを判別する方法
□投稿者/ Azulean (1231回)-(2022/04/06(Wed) 07:25:18)
No99432 (dfhghg さん) に返信
> Form2表示中を取得することが調べてもよくわかりませんでした。
> ご教示願いないでしょうか。

Form1 から Form2 を表示しているなら、Form1 を ShowDialog するときにフィールド変数で覚えておけば良いように思いますが、何か複雑な事情があるのでしょうか?


private bool _isUsingForm2;

private void Button1_Click(object sender, EventArgs e)
{
  Form2 f2 new Form2();

  _isUsingForm2 = true;
  f2.ShowDialog(this);
  _isUsingForm2 = false;
}

private void Form1_Deactivate(object sender, EventArgs e)
{
  if (_isUsingForm2) return;
  this.WindowState = FormWindowState.Minimized;
}


// どうしても、Form2 で判定したいなら、f2 をフィールド変数で覚えている場合、if (f2.Visible) で近しいことができるとは思う

引用返信 編集キー/
■99434 / inTopicNo.3)  Re[1]: 別フォーム表示中かどうかを判別する方法
□投稿者/ KOZ (232回)-(2022/04/06(Wed) 07:53:16)
No99432 (dfhghg さん) に返信
> Form2表示中はForm1が非アクティブになっても最小化させたくないのですが

Form.OwnedForm プロパティや、Application.OpenForms プロパティを参照する方法もあります。

「Form.OwnedForms プロパティ」
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.ownedforms?view=netframework-4.8

「Application.OpenForms プロパティ」
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.openforms?view=netframework-4.8

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -