从提示对话框返回值

时间:2017-08-02 07:50:03

标签: c#

我有一个应用程序,它读取一堆文本并查找某些值,当这些值被选中时,将通过对话框提示用户输入新值。

我遇到的问题是我似乎无法在其方法之外调用此值。

以下是调用提示符的代码:

return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";

当用户添加该值时,返回如下:

System.Windows.Forms.Control.Text.get returned  "1234"  string

我现在要做的是在另一个方法中调用此值,以便我可以执行string.Replace。

感谢任何帮助。

** 编辑 **

完整方法如下;

public static string ShowDialog(string text, string caption)
{
    Form prompt = new Form()
    {
        Width = 500,
        Height = 150,
        FormBorderStyle = FormBorderStyle.FixedDialog,
        Text = caption,
        StartPosition = FormStartPosition.CenterScreen
    };
    Label textLabel = new Label() { Left = 50, Top = 20, Text = text };
    TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
    Button confirmation = new Button() { Text = "Add", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
    confirmation.Click += (sender, e) => { prompt.Close(); };
    prompt.Controls.Add(textBox);
    prompt.Controls.Add(confirmation);
    prompt.Controls.Add(textLabel);
    prompt.AcceptButton = confirmation;

    return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";

1 个答案:

答案 0 :(得分:2)

您必须在提示对话框中创建一个带有公共getter的属性。 调用ShowDialog后,您可以从该属性中读取值。实际上,只要表格没有处理,您就可以访问该属性。

using( var frm = new PromptForm())
{
   if( frm.ShowDialog() == DialogResult.OK )
   {
       var s = frm.SomeProperty;
   }
}