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

解決


こかたつま  2008-05-19 19:24:10  No: 144759  IP: 192.*.*.*

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

編集 削除
魔界の仮面弁士  2008-05-19 23:45:51  No: 144760  IP: 192.*.*.*

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


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-19 23:53:51  No: 144761  IP: 192.*.*.*

> With Screen.FromRectangle(Bounds).WorkingArea

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

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

編集 削除
こかたつま  2008-05-22 14:38:15  No: 144762  IP: 192.*.*.*

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

編集 削除