C#输入对话框作为一个函数

时间:2010-05-21 15:12:44

标签: c# winforms

在C#中,我想创建一个具有以下行为的函数(方法):

  1. 调用时,创建并显示表单。
  2. 等待用户在表单上输入或选择一个值。
  3. 返回所选值。
  4. 是否有简洁易读的方法来实现此功能?

6 个答案:

答案 0 :(得分:4)

创建您要显示的表单

public partial class SomeForm : Form
{
    public SomeForm()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        DialogResult = DialogResult.OK;
        Close();
    }

    public string SomeValue { get { return textBox1.Text; } }
}

...

private string GetSomeInput()
{
    SomeForm f = new SomeForm();
    if (f.ShowDialog() == DialogResult.OK)
        return f.SomeValue;
    return null;
}

答案 1 :(得分:3)

只需致电Microsoft.VisualBasic.InputBox()

答案 2 :(得分:1)

如果您正在寻找对话功能,WPF和WinForms都支持此功能。您只需在显示的窗口/表单上调用ShowDialog()即可。这是一个阻塞调用,因此在关闭显示的对话框之前,您不会将处理返回到调用窗口。

要从此调用返回值,只需在窗体/窗口上创建属性,然后在ShowDialog()之后检查它们。

答案 3 :(得分:0)

该函数应返回您正在寻找的输入类型,它应该执行类似......

的操作
protected [InputType] ShowInputDialog()
{
    [InputWindowType] w = new [InputWindowType]();
    w.ShowDialog();
    return w.Input;  //Where input is a property that exposes what the user provided as input
}

答案 4 :(得分:0)

创建表单。添加要检索的值的某些属性。然后从主窗体调用新窗体作为ShowDialog,当它返回时,从属性中检索值。

答案 5 :(得分:0)

按如下方式实例化您的表单:

Form myForm = new Form();
var result = myForm.ShowDialog();

我手边没有winforms设计师,但返回值是Enum,表示点击了ok或取消等等。

一旦你知道,你就可以读出所选的值。

string selectedValue = myForm.SelectedValueProperty;