当前位置: 首页 > 编程语言 > C#

正确使用DialogResult分享

时间:2023-04-10 12:59:03 C#

C#学习教程:正确使用DialogResult找出原因?如果我没看错的话,MSDN文档指出这样做只是隐藏表单而不是正确处理它我相信.Close()在做什么?从文档中提取。当用户单击对话框的关闭按钮或设置DialogResult属性的值时,不会自动调用Close方法。取而代之的是,表单是隐藏的,可以在不创建对话框的新实例的情况下再次显示。由于此行为,当应用程序不再需要窗体时,您必须调用窗体的Dispose方法。另一方面,Microsoft已经创建了一个支持页面来解释如何使用DialogResult属性,并在其“验证它是否有效”部分中声明单击此页面将关闭表单。所以我的问题是双重的,我应该继续使用Close还是DialogResult;对话框结果关闭或隐藏表单。从我下面的代码(一个带有两个按钮的简单表单)看来,this.Close()似乎只是因为断点隐藏在这里..(用this.Close()注释,表单仍然消失,只是不确定是否它是隐藏的)publicForm1(){InitializeComponent();button1.Click+=(s,e)=>{//我编辑了我的问题以包括using(Form1form=newForm1()){form.ShowDialog();}};button2.Click+=(s,e)=>{this.DialogResult=DialogResult.OK;这个。关闭();};当您使用ShowDialog打开模态对话框时调用的代码将被阻止,直到出现名为“关闭”或“隐藏”的窗体。如果你想读取被调用窗体的一些公共属性,并想执行基于单击确定或取消按钮的操作(例如将数据保存到数据库或文件),你需要知道用户是否需要执行操作或不。ShowDialog()方法返回的DialogResult允许您采取适当的操作...例如使用(Form1form=newForm1()){DialogResultdr=form.ShowDialog();if(dr==DialogResult.OK){stringcustName=form.CustomerName;SaveToFile(custName);调用Close还是设置DialogResult属性都没有关系。您只需要确保调用Dispose。我更喜欢使用using块:using(Form1form=newForm1()){form.ShowDialog();我原以为您可以在已经调用了Close方法的Form上调用ShowDialog。不是这种情况。如果使用ShowDialog以模态方式显示窗体,则它是否由于Close方法或设置DialogResult属性而关闭并不重要。似乎设置DialogResult只是关闭表单的快捷方式。但是无论您调用Close还是设置DialogResult属性,关键是要确保调用Dispose()或将窗体放入using块中。以上就是C#学习教程:正确使用DialogResult分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: