C#窗体编程:对话框

在这里插入图片描述

手动添加事件

        public Form1()
        {
            InitializeComponent();

            testButton.Click += new EventHandler(this.OnTest);
            button1.Click += new EventHandler(this.OnTest);
            button1.Name = "button1";
            testButton.Name = "hhh";
        }

        public void OnTest(object sender, EventArgs e) 
        {
            Button btn = sender as Button;
            
            MessageBox.Show($"大家好 {btn.Name} ");
        }

对话框

系统自带的一些对话框类

  OpenFileDialog 打开文件对话框
  SaveFileDialog 保存文件对话框
  FolderBrowserDialog 目录选择对话框
  ColorDialog 颜色选择对话框
  FontDialog 字体选择对括框

对话框内存销毁

Form窗口对象含有非托管资源,需要手工销毁

对话框的阻塞

示例:
  MyDialog dlg = new MyDialog();
  dlg.ShowDialog(this);
  dlg.Dispose();
阻塞的效果:
1 方法卡在ShowDialog 这一行,不往下执行
2 对话框窗口可以活动,后面的父窗口不可以活动

可以理解为,ShowDialog()内部有一个while循环,在一直等待窗口关闭事件。

对话框属性

(外观) Text 窗口标题
(窗口样式) MaximizeBox 最大化按钮
(窗口样式) MinimizeBox 最小化按钮
(窗口样式) ShowInTaskbar 是否在任务栏显示
(布局) StartPosition 窗口显示位置
(外观) FormBorderStyle 边框设定/是否可以调整大小

对话框的返回

当对话框关闭时,ShowDialog() 返回一个值
示例:
  MyDialog dlg = new MyDialog();
  DialogResult rc = dlg.ShowDialog();            
  dlg.Dispose();

怎么让对话框关闭呢?

设置 Form.DialogResult 属性时,可以关闭对话框
示例:
     void okButton_Click(object sender, EventArgs e)
     {
         this.DialogResult = DialogResult.OK;
     }
并且,这个 DialogResult 就是 ShowDialog() 的返回值

有输入框的时候,取得用户输入
先判断用户是点了‘确定’还是‘取消’
再从对话框中取得用户的输入值 
   DialogResult rc = dlg.ShowDialog();
   if(rc == DialogResult.OK)
   {
         string str = dlg.edit.Text;
         ……
   }

设置 DialogResult,有两层作用:
关闭对话框
设定返回值,ShowDialog() 返回的值
先判断,再处理,最后关闭

对话框的默认响应

属性中设置
AcceptButton: 当按回车键时触发
CancelButton: 当按ESC键时触发

另外,当点叉号关闭窗口时,相当于Cancel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值