以编程方式使用拆分器停靠/显示多个DataGridViews

时间:2012-07-27 11:53:07

标签: c# winforms controls runtime

全部,我想在运行时构建并显示由horizo​​ntol DataGridView分隔的多个Splitter。为了测试这样做,我使用以下代码

创建了一个测试应用程序
private void button1_Click(object sender, EventArgs e)
{
    int i = 1;
    List<DataGridView> DgvList = new List<DataGridView>() 
                                 { 
                                     new DataGridView(), new DataGridView() 
                                 };
    foreach (DataGridView Dgv in DgvList)
    {
        Dgv.Parent = this.panelMain;
        int verticalSize = (int)(panelMain.Height / DgvList.Count);
        Dgv.Height = verticalSize;
        Dgv.Dock = DockStyle.Top;
        if (DgvList.Count > 1 && i < DgvList.Count)
        {
            Splitter tmpSplitter = new Splitter();
            tmpSplitter.Parent = this.panelMain;
            tmpSplitter.Dock = DockStyle.Top;
            tmpSplitter.BringToFront();
            tmpSplitter.Height = 8;
        }
        i++;
    }
}

但是,这不会显示Splitter

MultipleDgvs

有人可以突出我的方式错误吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

放弃这一行:

 tmpSplitter.BringToFront();

和拆分器将显示。

请注意,您以相反的顺序显示网格 - 列表中的第一个将位于屏幕底部。