0

私のアプリケーションにはいくつかのコントロールがあります。1つの画面のように、左側にTreeViewがあり、中央にページングがあり、右側に4つのボタンがあるGridViewがあります。フォームが最大化された状態のときにコントロールは正しく表示されますが、最小化すると、コントロールが画面に適切に収まりません。

テーブルのレイアウトなど、さまざまなトリックを試してみました。データにパネルを追加しました。

しかし、私はその問題を解決できませんでした。

ウィンドウのサイズに関係なく収まるようなタイプの画面を作成するにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

少し前に同じ問題がありました。私の場合、TabControl の UserControl 内にある SplitContainer 内にある GroupBox 内に Button と ListView がありました。右上のボタンを配置して固定したかったのですが、ListView が残りのスペースを占有したため、ドッキングできませんでした。代わりに、4 か所すべてに固定されていました。

私の場合、私のボタンとリストビューはデザイナーで機能し、正しく動作しますが、実行中のアプリではボタンが右端に配置され、ListView のサイズも幅が広すぎました。

最初のバグ修正では、デザイナーでボタンをもう少し左に配置することについていくつかの反復を行い、実行モードを確認し、最後の実行での印象からデザイナーでボタンを再調整しました。

それで、私はそれを機能させ、アプリでやらなければならなかった他のことからやり直しました。しばらくすると、新しい機能のリクエストがあり、この厄介なものの中に別のボタンが必要になりました。今回は、問題が再発するかどうかを確認するために、新しいユーザー コントロールで GUI 要素を完全に再構築しました。驚いたことに、この gui モックは期待どおりに動作しました。

私のコード内では、場所、サイズ、アンカー、ドックなどを変更することについて何もしませんでした。そのため、問題はInitializeComponents()デザイナーが作成したコード内にある必要がありました。

私は両方のバージョンの違いから始めましたが、大きな違いは見られませんでした (違いはたくさんありましたが、サイズ、場所、名前などのマイナーなものだけでした)。そこで、クレイジーなユーザーコントロールからコードをモックに入れ、アプリでモックを実行し始めました。いくつかのコピーの後、問題はモックにも表示されるため、問題の根本原因を突き止めました。

どのプロパティがクレイジーな動作につながったと思いますか?
それは私のSplitContainerのMinimumSizeでした!

したがって、問題の根本原因を実際に把握するには、空の UserControl (またはフォーム) からやり直して、すべての要素を目的の動作 (サイズ、場所、アンカー、ドック) で配置する必要があります。

これ以上何もない!

次に、このモックが希望どおりに動作するかどうかをテストし、そうでない場合は、このコードをここに投稿して、期待どおりの結果をお知らせください。

于 2010-04-27T07:58:05.600 に答える