1. 在C#中窗口的显示有两种方式:模态显示(showdialog)和非模态显示(show) . 模态与非模态窗体的主要区别是窗体显示的时候是否可以操作其他窗体。模态窗体不允许操作其他窗体,非模态窗体可以操作其他窗体。

  2. 非模态显示(show)

Form2 form2;
if((form2 == null) || (form2.IsDisposed == true))
{form2 = new Form2();form2.ShowDialog();       //将窗体显示为模式对话框form2.Dispose();       //form2上点击“关闭”按钮后,才执行到这里,需手动
}
else
{form2.ShowDialog();
}

当窗体显示为模式对话框时,单击 " 关闭 " 按钮 (窗体右上角带有 X 的按钮) 导致窗体隐藏并将 DialogResult 属性设置为 DialogResult.Cancel。由于显示为对话框的窗体是隐藏的,而不是关闭的,而不用创建该对话框的新实例。因此当您的应用程序不再需要这个窗体时,就要手动调用Dispose方法,如下图。

3. 非模态显示(show)

Form2 form2;
if((form2 == null) || (form2.IsDisposed == true))
{form2 = new Form2();form2.Show();
}
else
{form2.Activate();
}

C# 7. ShowDialog与Form.Show区别相关推荐

  1. C#中showDialog()与show()的区别(转)

    面对多窗口的调用的时候,我们往往不喜欢窗口之间的随意切换,那样我们还有花费时间寻找我们要用的窗口,而且,一但出现问题,窗口的顺序也有可能被再次打乱,很是不顺手,那么我们怎么办呢? 我们可以将show方 ...

  2. SAP Spartacus login 超链接和 login form 的区别

    如果用户已经登录,显示问候语,否则显示上图的 Sign In / Register 的文本. 注意,不要把 login 和下图的 login form 混淆了. 更多Jerry的原创文章,尽在:&qu ...

  3. winform 中show()函数和showdialog()函数区别

    show()函数和showdialog()函数都是窗体弹出函数,我们平常都不会太在意这两个函数,但是show()和showdialog()函数区别是有的: 主要区别在于,show()函数不会在意弹出窗 ...

  4. c# Application.run和form.show区别

    Application.run(form):在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见. form.show() :使指定窗体可见: 参照:https://blog.csdn.net/ ...

  5. show()与showdialog()区别

    这是个很弱的问题,但我还是要写一下: 显示有模式和无模式 Windows 窗体 窗体和对话框要么是有模式的,要么是无模式的."模式"窗体或对话框必须关闭或隐藏,然后您才能继续使用应 ...

  6. C# DialogResult.OK == Form.ShowDialog()

    简要的分析: 是将窗体显示为模式窗体并判断窗体的返回值来确定下一步的操作. DialogResult 是Form类的一个属性, ShowDialog()是Form类的一个方法也就是函数. 一般对话框上 ...

  7. Close与Dispose的区别

    Close与Dispose的区别:http://topic.csdn.net/t/20051007/15/4310467.html Close 是停业整顿,停业了,可以通过公关,再重开,物还是原来的物 ...

  8. Dockerfile 中 CMD 写法的区别

    CSDN 中文章不一定能及时更新,欢迎点击前往我的博客查看最新版本:许盛的博客 Dockerfile 中的 CMD 是个非常重要的指令,主要用于为容器提供启动命令,但是写法上有好几种方式,一段时间不看 ...

  9. Microsoft .NET Compact Framework 开发常见问题解答

    这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...

最新文章

  1. Python命令行参数解析模块getopt使用实例
  2. Win切换管理员用户
  3. ajax success function_Ajax封装
  4. 一步步编写操作系统 48 二进制程序的加载方式
  5. springboot 启动后打印_SpringBoot实战(五):配置健康检查与监控
  6. WebHeaderCollection 类
  7. jQuery LigerUI API预览版发布
  8. 《python核心编程》笔记——系统限制
  9. 使用cmd命令行装逼,让命令行滚动起来
  10. 最新!中科院分区发布2021年期刊重大调整
  11. Mat转QImage
  12. Word删除指定一页的页码
  13. 软件调试书籍资料汇总
  14. win10去除快捷小箭头_【批处理】win 去除桌面图标小箭头
  15. vsomeip源码梳理 -- OfferService流程
  16. 网站信息的采集系列(一)--基本流程
  17. iOS系统录屏如何增加雷达波纹效果(从一个点向周围扩散)的简单实现
  18. vue仿美团饿了么--底部导航公共组件
  19. 牛客 游戏(概率DP)
  20. 组态软件动态生成画面简介

热门文章

  1. Sql语句优化之explan分析案例
  2. 如何在文章中添加分割线
  3. arima基本原理_1 arima 模型理论.pdf
  4. 人生哲理小故事《猎狗与兔子》非常经典的故事
  5. echarts显示地图以及jQuery地域选择器插件
  6. uglifyjs压缩js文件(指令压缩/ 批量压缩/ 编程方式压缩)
  7. VScode下的Rust语言环境搭建
  8. PHY芯片lan8720调试笔记
  9. 轻松学习之Linux教程一 ubuntu14.04+windows双系统安装
  10. 字节跳动又做社交软件,这一次他能打败微信吗?