2017-11-29 5 views
0

現在、複数のフォームを切り替えて別の画面を表示するWindowsフォームアプリケーションを作成しています。 1つの迷惑なことは、あるフォームから次のフォームに切り替えると、新しいフォームウィンドウを最後のフォームウィンドウから少し下に移動するということです。 EX:別ウィンドウが開いたときにウィンドウフォームが画面間を移動しないようにする

form1 
    form2 
      form3 
       form4 

私は、フォームを切り替えるために.Hide()と.SHOW()を使用しています。

これを防ぐ方法はありますか?同様に、私がform2を開いたとき、form1が入っていたのとまったく同じ場所に置くことができますか?

VS2017を使用しています。

答えて

0

変更フォームStartPositionWindowsDefaultLocationからマニュアルを、およびコンストラクタにLocation設定:

あなたは常に次のポストを使用して、しかし自分で場所を設定することができます。

+1

今日dpiAwareコードを書くことはかなり重要です。コンストラクタでこれを行うのはかなり疑わしいです、あなたはまだウィンドウの実際のサイズを知ることはできません。 Loadイベントを使用するいくつかの理由の1つ、St​​artPositionプロパティは重要ではありません。 –

0

これを防ぐ方法はありません。既定では、ユーザーが新しいユーザーを開いていることを知らせるために設定されています。一番上に直接表示された場合、前のウィンドウが破棄されたり削除されたと思われる可能性があるため、ユーザーを混乱させる可能性があります。 Setting form's location when calling Form.Show()

ConnectingForm CF = new ConnectingForm(); 
CF.StartPosition = FormStartPosition.CenterParent; 
CF.Show(this); 
関連する問題