当前位置:  开发笔记 > 编程语言 > 正文

获取从不同程序集中执行的打开窗口表单实例的列表

如何解决《获取从不同程序集中执行的打开窗口表单实例的列表》经验,为你挑选了1个好方法。

我有一个加载菜单的"加载程序应用程序",当用户单击菜单图像按钮时,列表视图将根据文本打开

(if text = employee)  
(Go to class A) 
(Go to class B) 
    ...
    ...
    (Show List View Window) 

如果他再次点击它再次打开的同一个按钮,我想阻止这个.即但是这适用于WPF应用程序



1> Marc Gravell..:

如果你想要一个开放表格的清单,那就是Application.OpenForms.您可以使用GetType()并检查.Assembly以查找来自不同程序集的那些来迭代这个.除此之外,我对这个问题并不完全清楚......

        Assembly currentAssembly = Assembly.GetExecutingAssembly();
        List
formsFromOtherAssemblies = new List(); foreach (Form form in Application.OpenForms) { if (form.GetType().Assembly != currentAssembly) { formsFromOtherAssemblies.Add(form); } }

如果您只想跟踪自己打开的表单,请缓存该实例.或者,如果您使用"拥有的表单",您只需按名称检查:

    private void button1_Click(object sender, EventArgs e) {
        foreach (Form form in OwnedForms) {
            if (form.Name == "Whatever") {
                form.Activate();
                return;
            }
        }
        Form child = new Form();
        child.Name = "Whatever";
        child.Owner = this;
        child.Show(this);
    }

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有