私は親フォームを画面の中央に配置しようとしていますが、画面の中央にはセンタースクリーンとセンター親とどちらも表示されません。 私はGoogleを試してみましたが、一番上の結果がたくさんありましたが、一番上の機能には興味がありません。上のすべてのウィンドウと同じではなく、正しいパラメータを見つけることができません。C++ WinFormの画面上部にはどのように配置するのですか?
誰もがこの方法を見つけましたか?
私は親フォームを画面の中央に配置しようとしていますが、画面の中央にはセンタースクリーンとセンター親とどちらも表示されません。 私はGoogleを試してみましたが、一番上の結果がたくさんありましたが、一番上の機能には興味がありません。上のすべてのウィンドウと同じではなく、正しいパラメータを見つけることができません。C++ WinFormの画面上部にはどのように配置するのですか?
誰もがこの方法を見つけましたか?
Location
プロパティを使用する必要がありますForm
。
はここY = 0
にフォームをシフトアップする簡単な例です:
void Form1_Load(object sender, EventArgs e)
{
this.Location = new Point(this.Location.X, 0);
}
編集:がここにフォームが、画面の上部に集中されていることを確認します例です。
void Form1_Load(object sender, EventArgs e)
{
int x = (Screen.PrimaryScreen.Bounds.Width - this.Width)/2;
this.Location = new Point(x, 0);
}
注:
C++
とWinForms
を指しています。これは混同しないためです。 ここでそれを行うための方法です:
public static class FormExtensions
{
public static void CentreTop(this Form form)
{
form.Location = new Point((Screen.PrimaryScreen.Bounds.Width - form.Width)/2, 0);
}
}
とコンテキストで使用:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual;
this.Resize += Reposition;
this.Move += Reposition;
}
private void Reposition(object sender, EventArgs e)
{
this.CentreTop();
}
}
あなたはあなたがいない場合には中央にいる画面についてのいくつかのロジックを追加するようなことがあり常にPrimaryScreen
を使用します。
これは、Form1がStartPosition = CenterScreenで設計されている場合にのみ機能します。そうでない場合は、Xを計算します。 – Steve
@Steve:正しいです。私は自分の答えを更新しました。ありがとう。 – AVIDeveloper
私はC++/CLI WinFormsを参照しています:) –