如何从提示输入框中获取返回值? C#win Forms

时间:2016-12-10 11:18:53

标签: c# winforms

我创建了提示输入框,其中用户输入两个值并按下按钮,我想在按钮点击时返回值,并在其他方法中获取这些值。 这是我的代码

  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 = 10, Text = text };
        Label textLabel2 = new Label() { Left = 50, Top = 55, Text = text };
        textLabel2.Text = "Replace with";
        TextBox textBox = new TextBox() { Left = 50, Top = 70, Width = 200 };
        TextBox textBox2 = new TextBox() { Left = 50, Top = 30, Width = 200 };


        Button confirmation = new Button() { Text = "Replace", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(textBox2);
        prompt.Controls.Add(textLabel2);
        prompt.Controls.Add(confirmation);
        prompt.Controls.Add(textLabel);
        prompt.AcceptButton = confirmation;

        return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
    }
     private void stringReplacedToolStripMenuItem_Click(object sender, EventArgs e)
    {
        string promptValue = Form1.ShowDialog("Find What", "Replace");

    }

我希望在其他方法中获得textboxtextbox2的值。谢谢

1 个答案:

答案 0 :(得分:0)

好的,只需返回一个包含两个文本框值的数组。

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 = 10, Text = text };
    Label textLabel2 = new Label() { Left = 50, Top = 55, Text = text };
    textLabel2.Text = "Replace with";
    TextBox textBox = new TextBox() { Left = 50, Top = 70, Width = 200 };
    TextBox textBox2 = new TextBox() { Left = 50, Top = 30, Width = 200 };

    Button confirmation = new Button() { Text = "Replace", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
    confirmation.Click += (sender, e) => { prompt.Close(); };
    prompt.Controls.Add(textBox);
    prompt.Controls.Add(textBox2);
    prompt.Controls.Add(textLabel2);
    prompt.Controls.Add(confirmation);
    prompt.Controls.Add(textLabel);
    prompt.AcceptButton = confirmation;

    return prompt.ShowDialog() == DialogResult.OK ? new string[] { textBox.Text, textBox2.Text } : null;
}

private void stringReplacedToolStripMenuItem_Click(object sender, EventArgs e)
{
    string[] promptValue = Form1.ShowDialog("Find What", "Replace");

    var textBoxValue = promptValue[0];
    var textBox2Value = promptValue[1];
}