zoukankan      html  css  js  c++  java
  • 非模态窗体的创建

    最近工作要做一个跟ArcGIS一样的识别窗体,发现该窗体不需要关闭就可以进行主窗体的操作,搜寻诸多材料(多是MFC窗体中的),才知道是使用非模态窗体制作出来的。在Winform中模态窗体和非模态窗体的使用在于调用的方法不同。

    模态窗体:ShowDialog()方法,非模态窗体使用:Show()方法。

    区别:

        模态与非模态窗体的主要区别是窗体显示的时候是否可以操作其他窗体。模态窗体不允许操作其他窗体,非模态窗体可以操作其他窗体。

    模态窗体利用show方法设置好了,确实可以实现与主窗体的交互,但是如果再次触发调用非模态窗体事件,则非模态窗体依旧弹出,也就是有多个窗体,所以我们需要判断该窗体是否已经存在,如果存在就不要在调用窗体show事件。

    例如:利用vs添加两个窗体,Form2中放一个文本框,Form1中放一个button按钮,弹出文本框的内容。

    我们在Form1中进行写button的单击事件,注意:此时的frm对象应该创建在单击事件之外;



     public Form2 frm;
            private void simpleButton1_Click(object sender, EventArgs e)
            {
                if (frm==null||frm.IsDisposed)        //如果窗体不存在
                {
                    frm = new Form2();
                    frm.TopMost = true;       //显现在主窗体前面
                    frm.Show();
                    MessageBox.Show(frm.textEdit1.Text);
                }
                else                            //窗体存在
                { 
                    frm.TopMost = true;
                    frm.Show();
                    MessageBox.Show(frm.textEdit1.Text);
                }
    
            }



  • 相关阅读:
    如何向尝试登录Windows 10的用户展示提示信息
    如何在Windows 10上创建和设置虚拟硬盘
    处理器虚拟化——VMX
    处理器虚拟化——基本数据结构
    DP
    Heap与Stack的区别
    获得内核模块 通过DriverSection
    软件管理器
    获取电脑软件信息 和 浏览器信息
    字符串之间的转换
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/3971467.html
Copyright © 2011-2022 走看看