3

以下を使用してフォームの場所を設定したい:

this.Location = new Point(2908, 953);

コンストラクターで。コンストラクターはそれを無視しているようです。プログラムの実行中に一度だけその場所に行き、プログラムの開始時にそれを正しく実行したい。

私は何をすべきか?

4

2 に答える 2

4

Form.StartPositionコンストラクターからフォームの初期位置を設定するには、デフォルト値からに変更する必要がありますFormStartPosition.Manual

public MainForm()
{
    InitializeComponent();
    StartPosition = FormStartPosition.Manual;
    Location = new Point(2908, 953);
}

もう代替手段は必要ありませんが。Form.Loadコンストラクターを使用する代わりに、イベント ハンドラーで Form の場所を変更することもできます。

于 2013-09-12T02:10:50.640 に答える
1

匿名ユーザーが指摘したように、正しい方法は StartPositon プロパティを使用することですが、これも機能することがわかりました(難しい方法です):

IntPtr h = this.Handle; // to make Location=... work
Location = new Point(200,10);

なぜそれが機能するのかを説明したい人はいますか?( h はコンストラクターのどこにも使用されていません、BTW)

于 2016-06-14T15:03:26.430 に答える