Form里用了一个SplitContainer 其中splitContainer1.Panel1 中加载了一个 TreeView 通过点击TreeView不同级别中的节点在splitContainer1.Panel2中加载不同的窗体但是加载过程中splitContainer1.Panel2 部分闪烁的特别厉害求解决办法!!!

解决方案 »

  1.   

    加载窗体到panel?用panel.Controls.Add加载?窗体中是否有什么特殊的paint操作?
      

  2.   

    并没有什么特殊的paint操作啊新建了很多解决方案测试都这样啊,主要代码如下:    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                this.splitContainer1.Panel2.Controls.Clear();            
                switch (e.Node.Tag.GetType().Name.ToString())
                {
                    case "Form1":
                        Form1 dm = new Form1();
                        dm.FormBorderStyle = FormBorderStyle.None;
                        dm.TopLevel = false;
                        dm.Dock = DockStyle.Fill;
                        this.splitContainer1.Panel2.Controls.Add(dm);
                         break;
                    case "Form2":
                        Form2 dc = new Form2();
                        dc.FormBorderStyle = FormBorderStyle.None;
                        dc.TopLevel = false;
                        dc.Dock = DockStyle.Fill;
                        this.splitContainer1.Panel2.Controls.Add(dc);
                         break; }
             }
      

  3.   

    试试:Form1 dm = new Form1();
    dm.Hide();
    dm.FormBorderStyle = FormBorderStyle.None;
    dm.TopLevel = false;
    dm.Dock = DockStyle.Fill;
    this.panel1.Controls.Add(dm);
    dm.Show();
      

  4.   

    不好意思,我的代码中break;前都有 窗体.show() 我加.Hide() 好像作用不大.为什么我这闪的很厉害呢?
      

  5.   

    按照配置来说,没有什么问题,我做了测试,也没发现类似的现象。
    你最好把你的程序放到别的机器上看看是否有同样的现象。如果也有的话,最好说说form如何初始化,以及paint中做了什么操作。