0
我試圖通過設計一個窗體來創建自己的自定義輸入對話框。我如何初始化它,以便一旦我按下確定,我就可以收到它中的文本框的值,回到我最初稱之爲的位置?初始化後返回其他表單的文本框值?
我試圖通過設計一個窗體來創建自己的自定義輸入對話框。我如何初始化它,以便一旦我按下確定,我就可以收到它中的文本框的值,回到我最初稱之爲的位置?初始化後返回其他表單的文本框值?
您可以創建一個公開的屬性這樣的形式:
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();
}
}