初始化另一个窗体后返回该窗体的文本框值
本文关键字:窗体 文本 返回 另一个 初始化 | 更新日期: 2023-09-27 18:13:19
我试图通过设计表单来制作自己的自定义输入对话框。我该如何初始化它,以便一旦我按下OK,我就可以接收其中的文本框的值,回到我最初调用它的地方?
您可以创建一个公开如下属性的表单:
public class InputDialog:Form
{
public string Result { get; set; }
private void OK_Click(object sender, EventArgs e)
{
Result = txtResult.Text;
this.Close();
}
}
基本格式:
var dialog = new InputDialog();
dialog.ShowDialog();
string Result = dialog.Result;
您可以使用events
进行表单之间的通信。这样,InputForm
就隐藏了逻辑,隐藏了外部世界的属性。
public class InputEventArgs : EventArgs
{
public string Input { get; private set; }
public InputEventArgs(string input)
{
Input = input;
}
}
public class InputDialog : Form
{
public EventHandler<InputEventArgs> InputSet;
private void OkClick(object sender, EventArgs e)
{
var ev = InputSet;
if (ev != null)
{
ev(this, new InputEventArgs(txtInput.Text));
}
}
}
和在你的呼叫形式:
private void ShowInputForm()
{
using (var frm = new InputDialog())
{
frm.InputSet += (s, e) =>
{
txtResult.Text = e.Input;
}
frm.ShowDialog();
}
}