@Nulltiton

Как обратиться к экземпляру класса объявленному на другой форме?

Есть тестовый проект в котором находятся две формы и одни класс.
Реализация класса:
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 и обратно?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Разработчик ПО и IT-инженер
Да, просто уровнем выше создайте переменные/поля с нужными данными и передавайте их как параметры в конструкторе формы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы