C# 弹出窗口show()和showdialog()的两种方式

作者:火星papa 时间:2022-05-08 17:12:36 

我们在构建C# Form窗口的时候经常需要到弹出新的窗口,那么接着就会如何弹出窗口的疑问。这里介绍最常见的两种弹窗方法show()和showdialog()。我在VS2019中构建一个简单的工程来讲解让他们之间的区别。大家也可以动手建一个体验他们之间的区别。

  • form.Show()弹出窗口

    这个方法弹出来的窗体和父窗体(上一个窗体)是属于同一等级的窗体,这两个窗体可以同时存在而且可以随意切换。

  •  form.ShowDialog()弹出窗口

    showdialog弹出来的窗体就不能这样,它永远是被置顶的,如果不关闭这个窗体,那就不能使用别的窗体,别的窗体都是灰显的。

一、构建工程和界面介绍

首先我们建立两个基本窗口类,如下图,一个是首先会启动的Form主窗口(右边),其次是弹出界面Dialog(左边)。

C# 弹出窗口show()和showdialog()的两种方式

二 、添加代码

将两个窗口的代码添加到对应的类中。添加的按键单击事件中增加下面的主窗口代码和弹出窗口代码。

(1)主窗口代码:

public Form1()
       {
           InitializeComponent();            
       }        
       //实例化窗口类
       Dialog _dlg = new Dialog();

private void button_show_Click(object sender, EventArgs e)
       {          
           _dlg.Show();//显示
       }

private void button_hide_Click(object sender, EventArgs e)
       {          
           _dlg.Hide();//隐藏
       }

private void button_showDialog_Click(object sender, EventArgs e)
       {
           //实例化窗口类
           Dialog _dialog = new Dialog();
           //弹出对话框
           _dialog.ShowDialog();
       }

(2)弹出窗口代码:

public Dialog()
       {
           InitializeComponent();
       }

private void button_ok_Click(object sender, EventArgs e)
       {
           //指定返回结果
           this.DialogResult = DialogResult.OK;
           //关闭
           this.Close();
       }

private void button_cancel_Click(object sender, EventArgs e)
       {
       //指定返回结果
           this.DialogResult = DialogResult.Cancel;
           //关闭
           this.Close();
       }

private void hide_Click(object sender, EventArgs e)
       {
           //隐藏
           this.Hide();
       }

三、验证效果和小结

我们可以看到这些Show()方法和ShowDialog()方法都可以弹出我们想要的窗口,但是他们的效果明显不同,可以小结概述为下面几个方面差异。

项目Show()方法ShowDialog()方法
名称显示控件显示对话框
关闭的对应方法Hide() 隐藏控件Close()关闭窗体
编辑显示效果和主窗口平级,弹出子窗口后,两者可以任意切换到顶层和编辑。比主窗口优先级高,弹出编辑子窗口只能编辑子窗口,子窗口独占顶层,只有关闭(close)返回后,用户才可以编辑主窗口。
理模显示理解显示或隐藏控件,隐藏时并没有关闭,只是看不见,还存在。打开等待关闭的对话框,打开就存在,关闭就清除,和messageBox类似,关闭等同于右上角的叉叉(×)。

重点:Show()和Hide() 是一对,ShowDialog()和Close()是一对。 请一一对应,不能混用的哦。

来源:https://blog.csdn.net/weixin_45023644/article/details/125639125

标签:C#,弹出窗口,show(),showdialog()
0
投稿

猜你喜欢

  • java基础之注解示例详解

    2022-05-08 23:47:20
  • Java Lambda表达式与匿名内部类的联系和区别实例分析

    2022-01-05 21:10:22
  • 详解Spring Cloud Eureka多网卡配置总结

    2023-11-09 07:33:15
  • 总结Java集合类操作优化经验

    2023-01-27 10:29:37
  • 简单了解java自定义和自然排序

    2022-01-29 02:47:26
  • Spring Boot开发RESTful接口与http协议状态表述

    2023-05-27 03:26:48
  • java实现国产sm4加密算法

    2022-02-14 06:27:08
  • IDEA离线安装maven helper插件的图文教程

    2023-11-28 16:00:24
  • spring mvc+localResizeIMG实现HTML5端图片压缩上传

    2023-07-11 15:31:51
  • java,android,MD5加密算法的实现代码(16位,32位)

    2022-07-12 20:40:10
  • javaweb登录验证码的实现方法

    2021-09-12 05:00:08
  • SpringBoot实现邮件发送功能的姿势分享

    2022-05-27 02:08:09
  • Android 自定义输入支付密码的软键盘实例代码

    2021-08-09 11:41:43
  • 使用JSONObject生成和解析json的方法

    2022-06-15 11:13:15
  • 面试Spring中的bean线程是否安全及原因

    2021-06-11 18:25:38
  • spring mvc中直接注入的HttpServletRequst安全吗

    2021-12-29 07:48:16
  • 学习Java设计模式之观察者模式

    2023-07-03 05:17:46
  • Java获取彩色图像中的主色彩的实例代码

    2021-10-16 01:09:39
  • SpringBoot集成支付宝沙箱支付(支付、退款)

    2022-02-15 16:50:52
  • 带你入门Java的泛型

    2023-06-08 02:48:24
  • asp之家 软件编程 m.aspxhome.com