SplitContainerControl のスプリッターをコントロール サイズのパーセント位置に配置する方法はありますか? そのコンテナーのサイズが変更されても保持されますか? それとも、パネルのサイズをパーセント値に設定しますか?
3 に答える
SplitContainerControl.FixedPanelプロパティが値に設定されている場合、コンテナSplitFixedPanel.None
のサイズが変更されると、パネルの幅 (または高さ) が比例して変更されます。したがって、SplitContainerControl 内で固定パネルを使用しないでください。
splitContainerControl1.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.None;
splitContainerControl1.SplitterPosition = splitContainerControl1.Width / 3;
パーセンテージに基づいてオーバーライドControl.OnLayout
して設定します。SplitContainerControl.SplitterPosition
解決策 1: 参照: DevExpress : SplitContainerControl - スプリッターの位置を 50% にデフォルト設定する
スプリッターの位置を調整するには、SplitContainerControl.SplitterPositionプロパティをコントロールの半分のサイズに設定するだけです。たとえば、垂直方向の SplitContainerControl のスプリッタ位置を設定する場合は、次のコード スニペットを使用します。
private void Form1_Load(object sender, EventArgs e)
{
splitContainerControl1.SplitterPosition = splitContainerControl1.Height / 2;
}
解決策 2:
固定パネルがない場合、SplitterPositionプロパティは、コンテナーの左端または上端 ( Horizo ntalプロパティに従って) からのスプリッターの位置を指定します。
FixedPanel プロパティがSplitFixedPanel.None 値に設定されている場合、コンテナーのサイズが変更されると、パネルの幅 (または高さ) が比例して変更されます。
Form.Shown または Form.SizeChanged イベント ハンドラーでスプリッターの位置を変更します。//最初に FixedPanel プロパティを設定します
splitContainerControl1.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.None;
次に、Parnet コントロールの Control.ClientSizeChanged イベントを以下のように使用できます。
private void ParentControl_ClientSizeChanged(Object sender, EventArgs e)
{
splitContainerControl1.SplitterPosition = splitContainerControl1.Width / 2;
or
splitContainerControl1.SplitterPosition = ParentControl.Width / 2;
}