Есть тестовый проект в котором находятся две формы и одни класс.
Реализация класса:
namespace Test
{
public class User
{
public int Id;
public string Name;
public string Login;
public string Password;
static public bool Add(User user)
{
//добавление в базу данных
return true;
}
}
}
Форма 1:
using System;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
//Объявление экземпляра класса
User user = new User();
public Form1(User user)
{
InitializeComponent();
//Возвращение данных с Form2
this.user = user;
}
private void button1_Click(object sender, EventArgs e)
{
//Заполнение данными
user.Id = dataGridView1.CurrentRow.Index;
user.Name = dataGridView1.CurrentRow.Cells[1].Value.ToString();
user.Login = dataGridView1.CurrentRow.Cells[2].Value.ToString();
user.Password = dataGridView1.CurrentRow.Cells[3].Value.ToString();
//Передача данных на Form2 через экземпляр класса
Form2 form2 = new Form2(user);
form2.Show();
}
}
}
Форма 2:
using System;
using System.Windows.Forms;
namespace Test
{
public partial class Form2 : Form
{
//Объявление экземпляра класса
User user = new User();
public Form2(User user)
{
InitializeComponent();
//Получение данных с Form1
this.user = user;
}
private void Form2_Load(object sender, EventArgs e)
{
//Заполнение полей на форме
textBox1.Text = user.Name;
textBox2.Text = user.Login;
textBox3.Text = user.Password;
}
private void button1_Click(object sender, EventArgs e)
{
//При изменении: перезапись полей на новые значения
user.Name = textBox1.Text;
user.Login = textBox2.Text;
user.Password = textBox3.Text;
Form1 form1 = new Form1(user);
Close();
}
}
}
Возможно ли как-то обратиться к экземпляру класса объявленному на первой форме со второй формы и перезаписать в его полня новые значения, без объявления класса на второй форме? Если нет, то можно ли как-то упростить передачу экземпляра класса с формы 1 на форму 2 и обратно?