我有一个应用程序,它读取一堆文本并查找某些值,当这些值被选中时,将通过对话框提示用户输入新值。
我遇到的问题是我似乎无法在其方法之外调用此值。
以下是调用提示符的代码:
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 : "";
答案 0 :(得分:2)
您必须在提示对话框中创建一个带有公共getter的属性。 调用ShowDialog后,您可以从该属性中读取值。实际上,只要表格没有处理,您就可以访问该属性。
using( var frm = new PromptForm())
{
if( frm.ShowDialog() == DialogResult.OK )
{
var s = frm.SomeProperty;
}
}