2011-10-25 7 views

答えて

12

ユーザーの好みや自動スケーリングが適用された後、最も早いあなたは、ウィンドウの実際のサイズを知っているよ、位置を変更するためにLoadイベントを使用します。

Public Class Form1 
    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 
     Dim scr = Screen.FromPoint(Me.Location) 
     Me.Location = New Point(scr.WorkingArea.Right - Me.Width, scr.WorkingArea.Top) 
     MyBase.OnLoad(e) 
    End Sub 
End Class 
+0

+1を追加しました。 – user774411

2

Form.Locationを使用して、フォームの左上隅を表すPointに位置を設定できます。

これを 'Screenwidth - Formwidth'に設定すると、フォームを右上に配置できます。 画面の幅を取得するには、Screen.Boundsプロパティを使用します。

+0

私はScreen.GetBounds関数で苦労しています。この関数はptポイントタイプのパラメータを要求します。どのような価値を置くべきですか? – user774411

+0

私はドキュメントリンク –

0

ちょうどあなたのonloadイベント

にこれを追加します。
Me.Location = New Point(1, 1) 
0

それはあなたのために正常に動作します:

private void Form1_Load(object sender, EventArgs e) 
     { 
      this.Location = new Point(Screen.FromPoint(this.Location).WorkingArea.Right - this.Width, 0); 
     } 
0

フォーム負荷でさえも勝利を送りますy = 0、x =画面幅 - 書式幅の位置を表示します。

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Location = new Point(Screen.PrimaryScreen.Bounds.Right - this.Width,0); 
} 

「Screen.GetBounds(this).Right」を使用することもできます。これはあなたのフォームを含む画面の座標を与えるでしょう。

+0

関連する回答にコメントできませんでした。私は十分な評判がなかったので。そのために残念。 "私はScreen.GetBounds関数に苦労しています。この関数はptポイントタイプのパラメータを要求します。どの値を入力する必要がありますか?" ポイントパラメータはシナリオごとに異なります。複数の画面があり、ポイント座標に基づいて使用する適切な画面を探したい場合に使用します。 プライマリ画面のパラメータはenoguhでなければなりません。 –

関連する問題