C# 显示MDI子级-屏幕上仅显示毫秒的随机形式

C# 显示MDI子级-屏幕上仅显示毫秒的随机形式,c#,winforms,visual-studio-2015,mdi,C#,Winforms,Visual Studio 2015,Mdi,我有一个MDI表单,左侧是treeview,右侧是表单,左侧是拆分器。我想根据用户点击树视图中的节点打开一个表单,查看如何正确操作。问题是,当我打开新表单时,屏幕上会弹出一个随机表单,持续一毫秒,然后它就会消失,而表示要出现的表单会立即显示出来。 以下是我目前的代码: private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { CloseAllMdiChildForms(); if (e.Nod

我有一个MDI表单,左侧是treeview,右侧是表单,左侧是拆分器。我想根据用户点击树视图中的节点打开一个表单,查看如何正确操作。问题是,当我打开新表单时,屏幕上会弹出一个随机表单,持续一毫秒,然后它就会消失,而表示要出现的表单会立即显示出来。 以下是我目前的代码:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    CloseAllMdiChildForms();
    if (e.Node.Name == "root")
    {
        CustomerFrm cf = new CustomerFrm();
        cf.Show();
        cf.MdiParent = this;
    }

    //treeView1.MouseClick();
    //if (treeView1.SelectedNode.Level == 0)
    //{
    //    CustomerFrm CF = new CustomerFrm();
    //    CF.ShowDialog();
    //}
} 

屏幕上出现了一种仅在毫秒内可见的随机形式,没有任何理由。有什么问题吗?

根据注释的代码,您要查找的事件是


根据注释的代码,您要查找的事件是


闪烁是因为您首先显示表单,然后设置其
mdipradent
。所以它闪烁;它显示在mdi区域之外,然后在设置其
mdipreent
后显示在mdi客户端区域


要解决这个问题,首先设置
cf.MdiParent=this就足够了cf.Show()

闪烁是因为您首先显示表单,然后设置其
mdipradent
。所以它闪烁;它显示在mdi区域之外,然后在设置其
mdipreent
后显示在mdi客户端区域


要解决这个问题,首先设置
cf.MdiParent=this就足够了cf.Show()

问题出在哪里?屏幕上出现了一个仅在毫秒内可见的随机表单,这是因为您首先显示表单,然后设置其
mdipent
。所以它闪烁;它显示在mdi区域之外,然后在设置其mdi父对象后,显示在mdi客户端区域。要解决这个问题,首先设置
cf.MdiParent=this就足够了
然后调用
cf.MdiParent=this。顺便说一句,我更正了我在回答中的输入错误:first set
cf.MdiParent=thiscf.Show()。问题出在哪里?屏幕上出现了一个仅在毫秒内可见的随机表单,这是没有原因的。这是因为您首先显示了表单,然后设置了它的
mdipradent
。所以它闪烁;它显示在mdi区域之外,然后在设置其mdi父对象后,显示在mdi客户端区域。要解决这个问题,首先设置
cf.MdiParent=this就足够了
然后调用
cf.MdiParent=this。顺便说一句,我更正了我在回答中的输入错误:first set
cf.MdiParent=thiscf.Show()
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    if (e.Node.Name == "root")
    {
        CustomerFrm childForm = new CustomerFrm();
        childForm.MdiParent = this;
        childForm.Show();
    }
}