C# DialogResult用法案例详解

 更新时间:2021年08月27日 10:03:58   作者:weixin_30419799  
这篇文章主要介绍了C# DialogResult用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理。比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这个菜单之后,我们需要弹出一个增加用户的窗体出来,就假设“增加用户”的窗体叫frmAddUser,那么代码如下:

frmAddUser frm = new frmAddUser();
   if (frm.ShowDialog() == DialogResult.OK)   
   {
    //todo list
   } 

一般都是设置“增加用户”窗体中“确定”按钮的DialogResult的属性,

clip_image002

      设置完成后,只要用户一点击“确定”按钮,那么对话框就关闭,重新回到主窗体,然后可以在主窗体中进行相应的处理,比如把数据写入数据库等。

      现在有一个问题就是,“增加用户”的窗体如下:

clip_image004

      如果我想判断一下,用户输入的邮件格式是否正确,那么我该把这段代码放在哪呢?如果放在邮件输入框那个TextBox的TextChaged事件中,那么用户输入一个字母都会激发那个事件,这样就不太好,如果放在“确定”按钮的事件中,那么如果用户的邮件格式输入的不正确,就不应该返回主窗体,而是继续留在这个窗体上,等待用户修改,可是事实却不是这样,因为你设置了“确定”按钮的Dialogue属性,只要用户一点击按钮,主窗体中的

if (frm.ShowDialog() == DialogResult.OK)

这个判断就为真,不管你的邮件格式是否正确,主窗体都会继续向下执行。

      最后,终于找到了一个比较好的解决办法,都以为只有Button才有Diagolue属性,没想到窗体也有这个属性。所以我们根本就不需要设置“确定”按钮的Diagolue属性,直接把判断邮件是否合格的方法放在”确定”按钮的点击事件中,如果符合,那么就设置窗体的Diagolue属性为OK,用下面的代码:

this.DialogResult = DialogResult.OK;

这样主窗体中的if (frm.ShowDialog() == DialogResult.OK)这个判断也为真,它会继续执行下面的代码。如果不符合格式,就啥也不做,因为没有设置窗体的Diagolue属性为OK,所以“增加用户”的对话框永远不会关闭,主窗体也会一直等待,而不会去执行其他的代码。

     例子比较简单,只是我原来不知道这些,所以在这里记录一下。当然这只是一种办法,你也可以用其他的方法来解决类似这样的问题。

到此这篇关于C# DialogResult用法案例详解的文章就介绍到这了,更多相关C# DialogResult用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Framework 4.0中:找出新增的方法与新增的类(二)

    在Framework 4.0中:找出新增的方法与新增的类(二)

    为什么动态加载程序集无法找出Framework 4.0 和Framwork2.0 新增的方法和类
    2013-05-05
  • C# 改变无边框窗体尺寸大小的方法

    C# 改变无边框窗体尺寸大小的方法

    这篇文章介绍了C# 改变无边框窗体尺寸大小的方法,有需要的朋友可以参考一下
    2013-10-10
  • C#基础入门之算法:交换

    C#基础入门之算法:交换

    本文主要介绍了C#中算法:交换的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • C# 中用 Sqlparameter 的两种用法

    C# 中用 Sqlparameter 的两种用法

    这篇文章主要介绍了C# 中用 Sqlparameter 的几种用法,文中给大家列举了两种用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • C#设置开机启动项、取消开机启动项

    C#设置开机启动项、取消开机启动项

    这篇文章主要介绍了C#设置开机启动项、取消开机启动项,本文通过修改注册实现,并给出操作代码,需要的朋友可以参考下
    2015-06-06
  • 基于C#实现的多边形冲突检测实例

    基于C#实现的多边形冲突检测实例

    这篇文章主要给大家介绍了基于C#实现的多边形冲突检测的相关资料,文中介绍的方法并未使用第三方类库,可以完美解决这个问题,需要的朋友可以参考下
    2021-07-07
  • C# 枚举类型的声明和使用

    C# 枚举类型的声明和使用

    如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内
    2021-07-07
  • C#实现简单屏幕监控的方法

    C#实现简单屏幕监控的方法

    这篇文章主要介绍了C#实现简单屏幕监控的方法,涉及C#的图标隐藏及屏幕截图等技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#模拟浏览器实现自动操作

    C#模拟浏览器实现自动操作

    这篇文章主要为大家详细介绍了如何使用C#实现模拟浏览器实现自动操作,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • C#属性显示的实现示例

    C#属性显示的实现示例

    本文主要介绍了C#属性显示的实现示例,显示对象的属性,包括可显示属性、可编辑属性、及不可编辑属性,下面就具有来介绍一下,感兴趣的可以了解一下
    2024-04-04

最新评论