0

デフォルトの Form1 フォームのプロパティが変更されていない新しいプロジェクトでゼロから始めて、フォームに SplitContainer をドロップし、そのプロパティを次のように設定します。

アンカー - 上、左

ドック - 塗りつぶし

向き - 垂直

次に、2 番目の SplitContainer を最初の SplitContainer の左側のパネル (パネル 1) にドロップし、そのプロパティを上記のプロパティに再度設定します。ただし、今回はスプリッターの向きが水平に設定されています。

ここで、2 番目の SplitContainer の上部と下部の両方のパネル (パネル 1 と 2) に 2 つの CheckedListBox を配置します。両方の CheckedListBoxes のプロパティは次のように設定されています。

アンカー - 上、左

ドック - 塗りつぶし

最初の SplitContainer の右側のパネル (パネル 2) に TextBox を追加し、そのプロパティを次のように設定します。

アンカー - 上、左

ドック - 塗りつぶし

マルチライン - True

このアプリケーションをコンパイルして実行すると、追加した最初の SplitContainer の一部を形成する垂直スプリッターが動作し、期待どおりに動作するため、問題はありません。ただし、2 番目の SplitContainer の水平方向のスプリッターは一貫して不規則な動作を示します。スプリッター自体の幅は、上下に移動すると変化します。しかし、このスプリッターの幅の増加または減少は、それが移動された方向とも一致しません。たとえば、開始時に最初の位置から少し離れて移動すると、スプリッターが以前よりも薄くなる可能性があります。さらに上にサイズ変更すると、厚みが増します。

スプリッターを移動すると、下部の CheckedListBox の下端も上下に移動し、以前と同様に、この動作はスプリッターの移動方向と一致しません。

コンポーネントのプロパティへの変更をある実験から別の実験に持ち越さないようにするために、6 つほどの新しいプロジェクトを最初から開始し、Anchor、BorderStyle、Dock への変更を含むさまざまなことを試して、何が起こっているのかを理解しようとしています。 、および Margin プロパティですが、残念ながら私は賢明ではありません: -(

誰かがこの不規則な動作の同様の経験があり、解決策を提供できますか? 簡単なことを見落としているかもしれません。

読んでくれてありがとう。

編集\更新 - さらに実験を重ねた結果、発生している望ましくない動作が CheckedListBoxes に何らかの形で関連していると判断できました - 「アンカー」と「ドック」のプロパティが「トップ、それぞれ左" と "塗りつぶし" で、アプリの実行時に不規則な動作は発生しなくなりました - 垂直スプリッターと水平スプリッターの両方が正しく機能しています。

4

1 に答える 1

2

リスト ボックスの IntegralHeight プロパティを False に設定して、パネルに合わせてサイズを変更できるようにします。

于 2010-10-24T18:26:55.303 に答える