■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
|
|