zoukankan      html  css  js  c++  java
  • Form窗体之间的关系

    两个Form类的对象之间根据它们的依赖特性不同,存在着四种关系:模式对话框、非模式对话框、多文档和拥有。


    模式对话框

    模式对话框类似我们经常使用的MessageBox对话框,我们可以通过点击“确定”、“取消”等按钮关闭它。但是如果没有关闭,则这个窗体一定是拥有焦点控件的容器。也就是说焦点不能离开这个对话框。

    把Form窗体按照模式对话框显示的方法如下:

    复制  保存
    Form2 f = new Form2();//实例化窗体对象
    f.ShowDialog();//以模式对话框的形式显示窗体;


    给这个对话框添加拖拽一个按钮后,添加如下代码后,当用户点击button1按钮后,模式对话框关闭,并且返回结果值:DialogResult.OK

    复制  保存
    this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;



    非模式对话框

    相比之下,非模式对话框没有上述特点,为Form1的按钮添加如下事件后

    复制  保存
    private void button1_Click(object sender, System.EventArgs e)
    {
        Form2 f = new Form2();
        f.Show();
    }


    并且单击这个按钮,窗体Form1和Form2两者没有任何关系,可以各自拥有焦点,也可以任意遮挡对方,但是当Form1结束后,Form2窗体也同时退出。


    拥有

    如果允许两个窗口都可以获得焦点,但是要求Form2必须在Form1的前面,这种情况称为Form1拥有Form2,实例代码如下:

    复制  保存
    Form2 f = new Form2();
    f.owner = this; //设定所有者
    f.Show();//不能够使用showdialog()方法;


    这个属性在子窗口(form2)作为非模式对话框使用时比较有用,它能使子窗口在非激活状态下不被父窗口覆盖,记事本中的查找/替换对话框就是这样的。

    多文档

    (略)

  • 相关阅读:
    sublime text 4 vim 插件配置
    ssh-keygen 的使用
    distribution transaction solution
    bilibili 大数据 视频下载 you-get
    Deepin 20.2.1 安装 MS SQL 2019 容器版本
    【转】使用Linux下Docker部署MSSQL并加载主机目录下的数据库
    【转】You Can Now Use OneDrive in Linux Natively Thanks to Insync
    dotnet 诊断工具安装命令
    Linux 使用 xrandr 设置屏幕分辨率
    【转】CentOS 7.9 2009 ISO 官方原版镜像下载
  • 原文地址:https://www.cnblogs.com/CCJVL/p/1369509.html
Copyright © 2011-2022 走看看