Showing MDI Child - 一个只在屏幕上出现一毫秒可见的随机形式
Showing MDI Child - A random form visible only for a millisecond appearing on the screen
我有一个 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();
//}
}
有一个只显示一毫秒的随机表格无缘无故地出现在屏幕上。有什么问题?
根据注释代码,您要查找的事件是NodeMouseClick。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Name == "root")
{
CustomerFrm childForm = new CustomerFrm();
childForm.MdiParent = this;
childForm.Show();
}
}
闪烁是因为你先显示表单,然后设置它MdiParent
。所以它闪烁;它显示在 mdi 区域之外,然后在设置其 MdiParent
后显示在 mdi 客户区域。
解决问题,先设置cf.MdiParent = this;
,再调用cf.Show();
即可。
我有一个 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();
//}
}
有一个只显示一毫秒的随机表格无缘无故地出现在屏幕上。有什么问题?
根据注释代码,您要查找的事件是NodeMouseClick。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Name == "root")
{
CustomerFrm childForm = new CustomerFrm();
childForm.MdiParent = this;
childForm.Show();
}
}
闪烁是因为你先显示表单,然后设置它MdiParent
。所以它闪烁;它显示在 mdi 区域之外,然后在设置其 MdiParent
后显示在 mdi 客户区域。
解决问题,先设置cf.MdiParent = this;
,再调用cf.Show();
即可。