1。Handling OK and Cancel
    对于modal form ,如果 DialogResult 属性被开发者显式地设置了除了None以外的值,则该对话框会被自动关闭(会自动调用 Close() 方法)。
    如果想让用户在按 Enter 以及 Esc 时相当于按了 OK 和 Cancel 按钮(符合一般的操作习惯),要设置对话框的 AcceptButton 以及 CancelButton 属性(可以直接在相应Form的属性栏中设置,在 Misc 分类中)。

void InitializeComponent() {
    
    this.AcceptButton = this.okButton;
    this.CancelButton = this.cancelButton;
    
}

一般来说,如果设置了AcceptButton 以及 CancelButton 属性,则这两个按钮的的envent handler 就不需要了。

绝对要注意的是,需要手写类似如下的语句,写在Form的constructor中的 InitializeComponent() 后面:

this.okButton.DialogResult = DialogResult.OK;
        this.cancelButton.DialogResult = DialogResult.Cancel;

不能写在 InitializeComponent() 中,因为该方法是 IDE 自动生成的。

2。对于Modeless Form Data

Modeless Form 在关闭的时候怎么把相应的信息带回调用它的 Form 呢?答案就是 .Net 中的event

class PropertiesDialog : Form {
  
  // 当 Accept 按钮被按下时候的 Event
  public event EventHandler Accept;

  void acceptButton_Click(object sender, EventArgs e) {
    // Accept 按钮的实践处理方法
    if( Accept != null ) Accept(this, EventArgs.Empty);
  }

  void closeButton_Click(object sender, EventArgs e) {
    this.Close();
  }
}
//以下代码在主窗口对应的cs文件

void showProperties_Click(object sender, EventArgs e) {
  PropertiesDialog dlg = new PropertiesDialog();
  dlg.Accept += new EventHandler(Properties_Accept);
  dlg.Show();
}

// Client handles event from form to access accepted values
void Properties_Accept(object sender, EventArgs e) {
  PropertiesDialog dlg = (PropertiesDialog)sender;
  this.Text = dlg.Text;
}

转载于:https://www.cnblogs.com/anf/archive/2005/02/27/109799.html

Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs相关推荐

  1. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  2. java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略

    java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略 GC需要完成的三件事情:哪些内存需要回收.什么时候回收.如何回收 垃圾回收器在对堆进行回收前,首先要确定那些对象存活,哪些对象已经死去,判断的 ...

  3. Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

    Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用 ...

  4. python第三章上机实践_《机器学习Python实践》读书笔记-第三章

    <机器学习Python实践>,第三章,第一个机器学习项目 以往目录:橘猫吃不胖:<机器学习Python实践>读书笔记-第一章​zhuanlan.zhihu.com 书中介绍了一 ...

  5. sql经典实例_读书笔记 前三章

    sql经典实例_读书笔记 温故SQL以及数据库相关知识 1.检索记录 select * from emp //检索所有列 where dep = 10 //选择出指定行 or comm is not ...

  6. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示

    本章主要介绍了计算机中的机器代码--汇编语言.当我们使用高级语言(C.Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现.既然有了高级语言,我们为什么还需要学习汇编语言呢?学习 ...

  7. 《php开发典型模块大全》读书笔记 第三章 mysql数据库基础

    第三章  mysql基础 show columns  from table describe table alter table 修改表 rename   table   t1  to   t2 整型 ...

  8. 《Linux内核设计与实现》读书笔记 第三章 进程管理

    第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限于 ...

  9. 《算法导论》读书笔记--第三章 函数的增长

    好长时间了,继续算法导论. 当输入规模足够大时,并不计算精确的运行时间,倍增常量和低阶项被舍去.我们要研究的是算法的渐近效率,即在输入规模无限量时,在极限中,算法的运行时间如何随着输入规模的变大而增加 ...

最新文章

  1. 自旋电子学与量子计算机,基于“分子自旋电子学”的新技术,将给量子计算机带来新希望!...
  2. c++ 判断数学表达式有效性_C运算符和表达式、if判断、switch与逻辑运算、循环语句...
  3. 用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能
  4. Oracle 分析函数--Row_Number()
  5. android界面布局题,【填空题】Android 系统中, 用于定义布局显示在界面上的风格。...
  6. Python Excel表格操作总结
  7. mysql外连接_mysql学习-mysql内连接外连接
  8. arm 架构_ARM发布A78增强版大核架构:性能怪兽
  9. Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题
  10. 类加载机制、双亲委派机制深度解析以及如何自定义类加载器
  11. vue自定义全局组件(或自定义插件)
  12. 对象的当前状态使该操作无效
  13. pureftp在企业中的应用及配置
  14. 在哪里买腾讯云服务器,在哪查看我的腾讯云服务器购买记录?
  15. iOS 颜色渐变圆环
  16. 香港服务器的数据泄露是什么?怎样预防?
  17. 关系数据库范式及1NF、2NF、3NF和BCNF
  18. 成功解决failed: The TLS connection was non-properly terminated
  19. 珞珈-B生所学 跟学笔记 PPT(三)(完结)
  20. 步步为营-57-JQuery练习题

热门文章

  1. 数据库经典书籍--SQL必知必会
  2. golang中的可见性
  3. linux命令route
  4. sscanf简单用法
  5. const、static型数据在内存中如何存储?(变量存放位置)
  6. 简述DNS进行域名正向解析的过程。
  7. Linux下的kill函数的用法
  8. JUC并发编程八 并发架构--ReentrantLock
  9. springmvc十九:springmvc表单标签
  10. mybaits十九:bind绑定