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

わんくま同盟

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

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


(過去ログ 155 を表示中)
■89990 / )  Re[1]: マルチディスプレイでの子フォームの表示位置について
□投稿者/ 魔界の仮面弁士 (2024回)-(2019/01/28(Mon) 18:14:12)
2019/01/28(Mon) 18:15:10 編集(投稿者)

No89969 (粗品 さん) に返信
> 開発環境 VisualStudio2008 + VisualBasic + .Net Framework3.5 + Windows10 Pro 64bit
> ビルドした実行ファイル(exe)で動かすとセカンダリ画面で呼び出した時、子はプライマリ画面で全画面表示されるのです。


再現手順が分かりました。

(1) プライマリモニタ上で exe を実行し、そのまま子フォームを表示 → ○プライマリ上で全画面
(2) セカンダリモニタ上で exe を実行し、そのまま子フォームを表示 → ○セカンダリ上で全画面
(3) プライマリモニタ上で exe を実行し、Form1 をセカンダリに移動してから子フォームを表示 → ×プライマリ上で全画面
(4) セカンダリモニタ上で exe を実行し、Form1 をプライマリに移動してから子フォームを表示 → ×セカンダリ上で全画面



とりあえず、コンストラクタ(というか InitializeComponent)の段階では Maximized を解除しておき、
Load イベントの中で Maximized をセットすれば回避されるようです。


 Using childForm As New Form() With {.StartPosition = FormStartPosition.CenterParent}
   childForm.WindowState = FormWindowState.Normal
   AddHandler childForm.Load, Sub() childForm.WindowState = FormWindowState.Maximized
   childForm.ShowDialog(Me)
 End Using
返信 編集キー/


管理者用

- Child Tree -