0

SplitContainer を好きなように調整するのに苦労しているようです。私は frmMain と呼ばれる次のフォームを持っています:

frmMain スクリーンショット

フォーム Load code では、次のコードを実行する必要があります。

With MainContainer
    .IsSplitterFixed = True
    .Dock = DockStyle.Fill
    .SplitterDistance = 200
    .FixedPanel = FixedPanel.Panel1
    .Panel1.BackgroundImage = Resources.My.Resources.ResourceFile._001
    .Panel2.BackColor = Color.White
    .Panel2.AutoScroll = True
End With

コードを実行すると、次のようになります。

frmMain (コンパイル済み)

グレーのスプリッターは使い物にならないので外したいです。これは一般的なビューティー バグですか? 取り除くことは可能ですか?

SplitContainer の 2 番目の問題は、ウィンドウのサイズを変更すると、Panel1 の backgroundImage と Panel2 の白色がウィンドウに合わせて調整されないことです。リサイズコードを隅々まで探しましたが見つかりません。Panel2 にはユーザー コントロールがあります。ダッシュボードと次の方法でロードされます: MainContainer.Panel2.Controls.Add(Dashboard).

また、Panel2 がウィンドウの幅に合わせて自動的に調整され、水平スクロールバーしか表示されない可能性はありますか?

私の質問を読んでくれてありがとう。SplitContainer に関する問題の解決を手伝ってくれることを願っています。良い1日を。

4

2 に答える 2

2

グレーのスプリッターは使い物にならないので外したいです。これは一般的なビューティー バグですか? 取り除くことは可能ですか?

ユーザーにスプリッターを見たり移動させたりしたくない場合、なぜ分割コンテナーを使用するのでしょうか? 別の方法として、1 行 2 列で構成された TableLayoutPanel の使用を検討してください。最初の列は絶対 200 ピクセル幅で、2 番目の列は 100% 幅に設定されます。2 つのセルのそれぞれに、ドッキングされ、マージンが 0,0,0,0 に設定されたパネルを配置できます。

SplitContainer の 2 つ目の問題は、ウィンドウのサイズを変更すると、Panel1 の backgroundImage と Panel2 の白色がウィンドウに合わせて調整されないことです。... Panel2 がウィンドウの幅に合わせて自動的に調整され、水平スクロールバーしか表示されない可能性はありますか?

私はあなたの現在のソリューションをモックアップしませんでしたが、上記で提案したソリューションの簡単なモックアップでこれらの問題を再現することはできませんでした. 自動スクロールに関して、スクロール バーが表示される唯一の理由は、コントロールが画面の端からはみ出しているか、使用可能な画面スペースがパネルの最小サイズよりも小さい場合です。

于 2013-04-09T16:56:08.927 に答える
0

次の 2 つのオプションがあります。

  • 使用TableLayoutPanel(@erdomkeが示唆するように)
  • 2 つPanelのコントロールを使用する

2 パネル コントロールの場合は、 にドッキングpanel1Left、 にドッキングpanel2Fillます。サイズが変更される UserControl で panel2 を埋めるには、その Dock プロパティも Fill に設定します。

于 2013-04-09T18:06:16.973 に答える