Передача данных из одной формы в другую
У меня есть приложение C# с двумя формами (form1,form2). В form1 на btnTransfer_click я открываю вторую форму.
private void btnTransfer_Click(object sender, EventArgs e)
{
Form2 frmConn = new Form2 ;
frmConn .Show();
//i need here values from second form
}
Во второй форме у меня есть 2 текстовых поля (txtUser,txtPassword) и кнопка (btnOk) . На кнопке btnOk я проверяю пользователя и пароль, и если они верны, я должен вернуться к первой форме и получить эти значения при нажатии кнопки.
В форме 2:
private void btnOk_Click(object sender, EventArgs e)
{
//verify if txtUser and txtPassword are correct
//if are corrects i have to send back to first form
this.Close();
}
Как я могу это сделать? Спасибо!
2 ответа
Решение
В классе для form2
создать два public
свойства класса, по одному для значения каждого текстового поля:
private String _username = null;
public String UserName { get { return _username; } }
private String _password = null;
public String Password { get { return _password; } }
В form2
Вы можете проверить и назначить свойства:
private void btnOk_Click(Object sender, EventArgs e)
{
//verify if txtUser and txtPassword are correct
if (correct)
{
_username = txtUser.Text;
_password = txtPassword.Text;
}
this.Close();
}
Затем вы можете получить их в своем form1
код как таковой:
private void btnTransfer_Click(Object sender, EventArgs e)
{
//This using statement will ensure that you still have an object reference when you return from form2...
using (Form2 frmConn = new Form2())
{
frmConn.Show();
String user = frmConn.UserName;
String pass = frmConn.Password;
if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(pass))
//do something with them, they are valid!
}
}
Обычно используется объект передачи данных:
http://msdn.microsoft.com/en-us/library/ff649585.aspx
Или доменный объект.