現在作成中の Windows フォーム アプリケーションのメイン フォームには、左右のパネルを持つ SplitContainer があります。アンカーが右 (または右と左) に設定されている右側のパネルのコントロールは、デザイナーで配置した場所にとどまりません。定期的に、コントロールはピクセルを左にシフトします (実行時ではなくデザイナーで)。左と右の両方に固定されたコントロールの場合、コントロールは縮小しますが、ちょうど右に固定されたコントロールの場合、コントロール全体が同じサイズのまま左に移動します。なぜこれが起こるのか、またはそれを回避する方法を知っている人はいますか? 今、私にできる唯一のことは、それらを定期的に元に戻すことです。
注: 私の Windows フォーム デザイナーは現在、LayoutMode = SnapToGrid、Snap to Grid = true、グリッド サイズ 5 x 5 で設定されています。
編集:最終的に、Visual Studio 2012 でこの問題を再現する方法を見つけることができました。使用しているのと同じデザイナー設定で新しい Windows フォーム プロジェクトを作成し、SplitContainer をフォームに追加します。ドッキングしたままにして埋めます (またはすべての側面にアンカーを使用します)。次に、SplitterDistance を 100 に、SplitterWidth を 5 に設定します。ボタンを右側の SplitPanel に追加し、そのアンカーを Bottom と Right に設定します。ボタンの右端が SplitPanel の側面と同じ高さになるようにボタンを移動し、フォームを閉じてから開きます。魔法のように、ボタンが 1 ピクセル左に移動しました。
閉じる前の状態は次のとおりです (この場合、ボタンの位置は 105、175 です)。
閉じて再度開くと、次のようになります (ボタンの位置は 104、175 です)。
この例が問題の再現に役立つことを願っています。