ツリービュー、リッチテキストボックス、タブコントロールの3つのオブジェクトを含むWindowsフォームオブジェクトがあります。それらはウィンドウフォームにドッキングされていませんが、固定されています(上+左)。
Form-resizeイベントハンドラーが呼び出されたときにサイズを変更するコードを記述しましたが、フォームサイズを大きくした場合にのみ機能しているようです。つまり、フォームのサイズを小さくすることはできません。これには、最初にメインウィンドウフォームを増やしてから、元のサイズに戻そうとする場合も含まれます。
次のコードを使用して、各フォームのサイズを変更した後、3つのオブジェクトのサイズを手動で設定します。
treeView1.Height += (this.Height - oldHeight);
richTextBox1.Width += (this.Width - oldWidth);
tabControl1.Width += (this.Width - oldWidth);
tabControl1.Height += (this.Height - oldHeight);
oldHeight = this.Height;
oldWidth = this.Width;
最小サイズが設定されているオブジェクトはありません(サイズ変更プロセス全体ですべて0,0になります)
フォームのサイズが小さいサイズに変更されない理由は何ですか?
Autosize(メインのFormオブジェクトに設定されていた)は、ウィンドウがその中に含まれるオブジェクトよりも小さいサイズに縮小するのを妨げていました。メインフォーム内のオブジェクトは、サイズを大きく変更するたびに増加するため、サイズを大きくした後、メインフォームを縮小することはできませんでした。メインのFormオブジェクトでAutosizeを無効にするすることで、サイズ変更の完全な制御を取り戻すことができました。
上記で問題が解決しない場合は、フォームの最小サイズが必要以上の値に設定されていないことを確認してください。
Visual StudioでWinformを右クリックします->選択プロパティ-> AutoSizeが設定されます- True->次のように変更しますFalse
OR
この行をコードに含めます
this.AutoSize = false;
すべてのControls
をPanel
に入れ、Dock
のPanel
プロパティをFill
に設定するだけです。 Autosize
をtrueに設定しても機能すると思います。
通常のマウス選択ではサイズを変更できないフォームの動作を修正する方法がもう1つある場合があります。
上記の説明に関連して、(VS2010でVB.netを使用して)標準のWindowsフォームの1つがマウスの選択でサイズ変更されないことを発見しました。 FormBorderStyle
がFixed
に設定されているかのようです。 FormBorderStyle
をSizableToolWindow
に変更しても、期待されるマウスサイズの動作は得られませんでした。
フォームデザインのプロパティのフォーム設定は次のとおりです。
Autosize: false
AutoSizeMode: growonly
Doublebuffered: true
Enabled: true
FormBorderStyle: Sizable
ImeMode: NoControl
Locked: false
AutoScaleMode: Font
AccessibleRole: default
このフォームのすべての表示またはコードプロパティ設定、およびそのすべてのDesignerプロパティ設定も、マウスのサイズ変更を適切に許可する同じプロジェクト内の他のフォームと同じでした。溶液を洗浄し、再構築しても、凍結したフォームの問題は修正されませんでした。 [最大化]をクリックすると機能し、[最小化]をクリックしました。フォームサイズは、期待どおりにコードで設定できます。フォームのマウスサイズ変更のみが正しく機能しませんでした。
コードでパラメータを設定することにより、目的のマウス選択のサイズ変更を再度有効にできることを発見しました。
myForm.AutoScaleMode = Windows.Forms.AutoScaleMode.Inherit
このパラメーターは、フォームのデザインで.Font
に設定されていました。これは、適切に機能する他のフォームでも使用されていました。
次に...奇妙なことに...コード内で.Inherit
から.Font
に戻すと、フォームのサイズを適切に変更することもできました。
この場合、コードでのその設定(.Inherit
または.Font
のいずれか)は、フォームのサイズ変更の問題を修正するための重要な要素のようです。フォームの予想される操作を何らかの形で妨害することをシステムがユーザーに示さない隠されたパラメーターがあるようです。
私はここですべての答えに従いました、どれも私のために働きませんでした。私は先に進んでパディングを追加しました、そしてそれはうまくいきました。 [プロパティ]タブに移動してラベルを選択し、パディングを追加します。
フォームのプロパティのデフォルトのMinimumSize
をゼロ以外の数値(10など)に変更するだけです。