显示MDI子-一个随机的形式只可见一毫秒出现在屏幕上
本文关键字:一毫 屏幕 MDI 一个 随机 显示 | 更新日期: 2023-09-27 18:13:19
我有一个MDI表单,左边有树视图,右边有分条,左边有分条。我想打开一个基于用户点击在树视图内节点的表单,我如何正确地做到这一点。问题是,当我打开一个新的形式随机弹出一个在屏幕上一毫秒,然后它消失了,一个意味着出现后显示直接。下面是我到目前为止的代码:
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();
//}
}
有一个随机的形式只在一毫秒内出现在屏幕上。有什么问题吗?
闪烁是因为您首先显示表单,然后设置其MdiParent
。所以它闪烁;它显示在mdi区域之外,然后在设置其MdiParent
后显示在mdi客户端区域。
要解决这个问题,只需先设置cf.MdiParent = this;
,再调用cf.Show();
。
根据注释的代码,您正在寻找的事件是NodeMouseClick。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Name == "root")
{
CustomerFrm childForm = new CustomerFrm();
childForm.MdiParent = this;
childForm.Show();
}
}