我有一个 MDI 窗体,左侧有 TreeView ,右侧有窗体,分离器朝向左侧。我想根据用户单击 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();
//}
}
屏幕上无缘无故地出现了一个只可见一毫秒的随机表格。有什么问题?
最佳答案
闪烁是因为你先显示窗体,然后设置它的MdiParent
。所以它闪烁;它显示在 mdi 区域之外,然后在设置其 MdiParent
后显示在 mdi 客户区域。
要解决这个问题,先设置cf.MdiParent = this;
,然后调用cf.Show();
即可。
关于c# - Showing MDI Child - 一个只在屏幕上出现一毫秒可见的随机形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085989/