2011-09-09 9 views
0

ここに私の問題があります。これらのコントロールの多くは、AnchorプロパティがTop | Rightに設定されています。デザイナのフォームのサイズは1680x1050に設定されています。解像度が1680x1050に設定されている場合は、常に正しく表示されます。フォームが最大化されたときにコントロールのアンカープロパティが機能しない

小さい解像度(たとえば1600x900)に変更し、フォームが最大化として開くように設定されている場合、いずれのコントロールも右端からの距離を維持するために移動しません。右端のコントロールはすべてフォームからちょっと離れています。しかし、ウィンドウを最大化しないと、ウィンドウのサイズを変更することができ、すべてのコントロールがの電流を維持する場合、右端からの距離が正しくありません。

フォームを通常の(最大化されていない)ように設定すると、適切な場所にすべてのコントロールが表示され、フォームのサイズを変更するとすべてが正しい場所に残ります。

これは非常に不満な問題でした。親切な魂の誰かが私に助言をしてくれますか?私の推測では、「最大化」プロパティは、フォームの初期化呼び出し時に設定され、問題を引き起こしている可能性のあるものということである

theForm.WindowState = FormWindowState.Maximized; 

+1

それが経由してロードするときにプログラムで大変疲れするフォームを変更するときは、これと同じ動作を取得ください:theForminquestion.WindowState = FormWindowState.Maximized;フォームのLoadイベント中に? – KreepN

+0

ちょうどチェックし、いいえ、Loadイベント中に最大化すると、すべてが正しいようになります。 –

答えて

1

Idはちょうど私の提案されたソリューションを使用することをお勧めします。 (プロジェクトコードを見ずに言うのは難しい)より重要なイベントの後にLoadも呼び出されるため、そのプロパティに何らかの問題が存在する場合は、FormWindowState.Maximizedコードを使用しないようにします。

問題の原因と思われるコードを実際に投稿したい場合は、この回答を編集して助けてください。 falseに設定します

コントロールAutoSizeプロパティ:

-J

+0

これは現在の回避策として機能しますが、アンカーが同じアプリケーション内のいくつかの他のフォームで正常に動作するため、これがなぜ起こっているのかを知りたいと思います。もっと知りたければお知らせします。 –

+0

あなたが試してみることの1つは、フォーム自体を取り出し、すべてを切り出し(Ctrl + x)、パネルを挿入し、そのパネルのDockプロパティをFillに変更することです。その後、すべてをそのパネルに貼り付けます。 (他の変更は必要ありません)。 これは、フォームの代わりにパネル(別名親コンテナ)にコントロールが固定されるため、問題がフォームに固定されている場合に問題を解決します。 影響があるかどうか教えてください。 – KreepN

+0

ちょうど最小限のコード再現をまとめようとしましたが、サードパーティのコントロールが何らかの形で責任を負うように見えます。私は彼らにメッセージを送り、何が起きているのかを見ます。 –

0

私はで私の問題を解決します。

private void Form_Load(object sender, EventArgs e) 
{ 
    dataGridView1.AutoSize = false; //true; 
} 
0

は、塗りつぶし= SplitContainerにすべてのコントロールを入れて、splitcontainerのDockプロパティを設定すると、このようなDataGridViewのように制御

関連する問題