我创建了提示输入框,其中用户输入两个值并按下按钮,我想在按钮点击时返回值,并在其他方法中获取这些值。 这是我的代码
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");
}
我希望在其他方法中获得textbox
和textbox2
的值。谢谢
答案 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];
}