8

したがって、それぞれ 2 つのパネルを持つ 3 つの分割コンテナーがあります。

SplitContainer1Form ( Parent ) にドッキングされているメイン コンテナーです。

SplitContainer1.Panel1SplitContainer2ドッキングされているものを含みます。

SplitContainer1.Panel2SpliContainer3ドッキングされているものを含みます。

ここまでは順調ですね。

SplitContainer1の aSplitterWidthは 3 SplitContainer2で、SplitContainer3aSplitterWidthは 6 です。

SplitterWidthデザイナーでは、それらの違いを確認できますが、ソリューションをビルドすると、何をしても と が 4 にリセットされSplitterWidthますSplitContainer2SplitContainer3フォームの「InitializeComponent」のコードを変更しましたが、効果はありません。

私がこれを機能させる唯一の方法は、完全にばかげていると思うLoad Eventフォームを再指定することです。Designer で指定した値にとどまらSplitterWidthsないのはなぜですか?SplitterWidths

誰かがこれに光を当てることができれば、何が素晴らしいでしょう!!

御時間ありがとうございます、

ピーター

4

1 に答える 1

2

これが永遠に答えられないままにされないように-

これは、多くのバージョンで Visual Basic に存在する古いバグであり、対処されることはありません (対処される可能性もありません)。

Hans Passant が言及しているように、この問題は のISupportInitialize実装によるものSplitContainerです。

これはバグであるため、論理的に意味のある問題を解決する決定的な方法はありません。

モックアップ プログラムでテストした 1 つの方法は、@xfx が言うように、ツールボックスを使用するのではなく、プログラムでコントロールを追加して操作することです。

代替手段は、SplitterWidthsプログラムでリロードForm_Loadすることです。これは、おそらく on であるか、コード内の必要な場所であるかにかかわらずです。

于 2016-12-16T11:44:26.883 に答える