当前位置:  开发笔记 > 编程语言 > 正文

是否可以重载ShowDialog(),以便子表单作为out参数返回信息?

如何解决《是否可以重载ShowDialog(),以便子表单作为out参数返回信息?》经验,为你挑选了2个好方法。

在之前关于如何从对话框窗口返回字符串的问题中,yapiskan建议重载子窗体的ShowDialog()方法以包含out参数.

我的问题是这是否是C#中的一个好方法.

这是一些示例代码,基于yapiskan的建议.在子窗体中(在此示例中,它是一个带有文本框的窗体),您只需添加ShowDialog重载并将UI值分配给out参数:

public DialogResult ShowDialog(out string s)
{
    DialogResult result = this.ShowDialog();
    s = this.textBox1.Text;
    return result;
}

要显示表单并检索输入的文本,请执行以下操作:

using (CustomDialog frm = new CustomDialog())
{
    string s;
    if (frm.ShowDialog(out s) == DialogResult.OK)
    {
        // do something with s
    }
}

我能想到的一个优点是,这种方法迫使CustomDialog表单的用户通过表单的ShowDialog方法获取它所包含的信息(而不是来自知道它的所谓方法,如GetMyData()或其他东西) .



1> Patrick Desj..:

最好有一个公共属性/方法并获取信息.

如果你需要3..4..5个信息,有5个参数,你会怎么做?更干净,有访问器从Dialog获取您的信息.



2> Serhat Ozgel..:

它应该不行,因为.net框架不使用此设计.在OpenFileDialog类的情况下,它有一个无参数的ShowDialog()方法返回一个DialogResult.调用此方法后,用户应使用FileName,FileNames,SafeFileName和SafeFileNames方法获取所选文件.

让我们假设这是以"out参数"的方式实现的.我必须编写这样的代码才能得到SafeFileName:

string dummyFileName;
string[] dummyFileNames;
string safeFileName;
string[] dummySafeFileNames;

myDialog.ShowDialog(out dummyFileName, out dummyFileNames, out safeFileName, out dummySafeFileNames);

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有