[C#] 表示位置を指定した場合にフォームの表示位置がずれる

このページのタグ:[C#] [フォーム]
表示位置を指定した場合にフォームの表示位置がずれる現象が起きる場合があります。

ケース1


private void Button1_Click(object sender, EventArgs e)
{
 form2.Left = 120;
 form2.Top = 120;
 form2.Show();
}
上記コードで初回のみフォームの表示位置がずれる場合があります。この場合の原因としては、フォームのStartPositionプロパティで設定したロジックが優先されている可能性があります。フォームのStartPositionプロパティをManualにすることで、指定した位置にフォームを表示できます。

ケース2


private void Button1_Click(object sender, EventArgs e)
{
 form2.Left = this.Left - form2.Width - 16;
 form2.Top = this.Top;
 form2.Show();
}
上記コードで初回のみフォームの表示位置がずれる場合があります。form2のwidthがプロパティエディタで設定した違う値のためずれます。form2のwidthはshow()の直後にプロパティエディタで設定した幅と高さが設定されるため、Show()の後でLeftとTopを指定するとずれなくなります。

対策


private void Button1_Click(object sender, EventArgs e)
{
 form2.Show();
 form2.Left = this.Left - form2.Width - 16;
 form2.Top = this.Top;
}

登録日 :2010-07-22    最終更新日 :2011-02-21
このページのタグ:[C#] [フォーム]
Japanese
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)