天天看點

DotNetBar中ExpandableSplitter使用技巧

為了實作如下圖1到圖2效果,用ExpandableSplitter很友善,設定ExpandableSplitter的ExpandedControl屬性為panelEx_Right即可。

但是想實作圖3的效果,本以為用這個控件加上Form的Autosize屬性即可。

沒想搞了半天發現不管是form用autosize讓panel_right的dock為fill,還是panel_right錨定都無法實作這個效果。

DotNetBar中ExpandableSplitter使用技巧
DotNetBar中ExpandableSplitter使用技巧

仔細想想,autosize肯定不行,其和dock在實作上就是是沖突的,呵呵。

真是懶習慣了,動手加下邊幾句就可以解決,在這裡記錄一下。

public partial class Test : Form

{

    //記錄右側Panel寬度

    private int m_RightWidth = 0;

    public Test()

    {

        InitializeComponent();

        m_RightWidth = panelEx_Right.Width;

    }

    private void expandableSplitter_Click(object sender, EventArgs e)

    {

        if (expandableSplitter.Expanded)

        {

            m_RightWidth = panelEx_Right.Width;

            this.Width -= m_RightWidth;

        }

        else

        {

            this.Width += m_RightWidth;

        }

    }

}

DotNetBar中ExpandableSplitter使用技巧

另外記得設定MinExtra屬性為0,不然ExpandableSplitter拖不到最邊上。

c#