フォームを中央に表示するには

解決


こかたつま  2008-05-20 04:24:10  No: 144759

フォームを中央に表示したいのです。
はじめてに表示するときは
Me.StartPosition = FormStartPosition.CenterScreen
でできるのですが
例えばボタンをクリックした場合とかでも
フォームを中央に表示したいのです。
どうすればよいのか教えてくださればうれしいです。
尚開発環境はVB2005です。


魔界の仮面弁士  2008-05-20 08:45:51  No: 144760

これでどうかな。手元にマルチモニタ環境が無いので、ちょっと自信無し。

Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    With Screen.FromRectangle(Bounds).WorkingArea
        Location = New Point(.X + (.Width - Width) \ 2, .Y + (.Height - Height) \ 2)
    End With
End Sub


魔界の仮面弁士  2008-05-20 08:53:51  No: 144761

> With Screen.FromRectangle(Bounds).WorkingArea

上記で、WorkingArea (タスクバー等を除いた作業領域)を使うか、
Bounds (デスクトップ領域全体)を使うかは、アプリ次第です。

全画面表示(≠最大化)のように、タスクバーを覆うようなフォームなら
Bounds、作業領域内に収まる場合には WorkingArea の方が良いかと。


こかたつま  2008-05-22 23:38:15  No: 144762

以下のコードで実現できました。ありがとうございました。
    Me.Top = (System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2
    Me.Left = (System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加