c# - Showing MDI Child - 一个只在屏幕上出现一毫秒可见的随机形式

标签 c# winforms visual-studio-2015 mdi

我有一个 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/

相关文章:

c# - Visual Studio 2015 观察评估超时

c# - Dotnet nuke 代码隐藏事件未执行

c# - Validation.HasError 未针对针对 IDataErrorInfo 验证的 DataGrid 触发

c# - 如何在 C# (Mono/Xamarin) 中使用 Bouncy CaSTLe 导入签名的 SSL 证书?

c# - Winforms:一个可拖动的透明矩形

c# - 将 DataGridView 的特定单元格设置为 "Left to Right"的对齐方式

c# - 在非 UI 线程上运行模态对话框

c# - 如何检查一个数组是否包含另一个数组的任何项目

c - 如何管理从 matlab coder 自动生成的 c 文件?

c++ - Visual Studio 2015 中 Unresolved external symbol 链接器错误