Dokonywanie zmian w obiekcie w innej klasie

0

Cześć,
w moim programie w klasie1 tworzą się obiekty pracownika z różnymi właściwościami (imię, nazwisko itp.). Są one dodawane to listboxa. Następnie, po wybraniu jednego z dostępnych elementów i wciśnięciu opcji edytuj, otwiera się formularz edycji (klasa nr2) gdzie powinna być możliwość dokonywania zmian w obiekcie (formularz pobiera dane z wybranego obiektu i wyświetlają się w odpowiednich textboxach), ale właśnie nie wiem co muszę zrobić, aby to działało w ten sposób. Próbowałem nawet tworzyć, nowy obiekt, ale jest on widoczny tylko z poziomu klasy2. Kod poniżej (oczywiście nie działa tak jak należy):

KLASA 1
```        namespace WindowsFormsApp1
{
    public partial class MainWindow : Form
    {
        public MainWindow()
        {
            InitializeComponent();
            
        }
        public void blad()
        {
            MessageBox.Show("Wpisano błędny numer pesel. Proszę o poprawienie danych.", "Błędny numer pesel", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        public void MainWindow_Load(object sender, EventArgs e)
        {
            Pracownik p1 = new Pracownik("Jan", "Kowalski", "12345678901", "Ogrodowa 2","Warszawa", "Asystent", 7500);
            listBox1.Items.Add(p1);
        }
        public void edycja()
        {
            Pracownik edytowanyuser = listBox1.SelectedItem as Pracownik;
            EditEmployeeWindow edycjapracownika = new EditEmployeeWindow();
            edycjapracownika.Show();
            edycjapracownika.textBox1.Text = edytowanyuser.imie;
            edycjapracownika.textBox2.Text = edytowanyuser.nazwisko;
            edycjapracownika.textBox3.Text = edytowanyuser.pesel;
            edycjapracownika.textBox4.Text = edytowanyuser.pensja.ToString();
            edycjapracownika.textBox5.Text = edytowanyuser.stanowisko;
            edycjapracownika.textBox6.Text = edytowanyuser.miasto;
            edycjapracownika.textBox7.Text = edytowanyuser.ulica;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Pracownik wybrane = listBox1.SelectedItem as Pracownik;
            if (wybrane != null)
            {
                edycja();
            }
        }

KLASA 2

namespace WindowsFormsApp1
{
    public partial class EditEmployeeWindow : Form
    {
        public EditEmployeeWindow()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MainWindow edytowanyuserform1 = new MainWindow();
            Pracownik edytowanyuser = edytowanyuserform1.listBox1.SelectedItem as Pracownik;
            edytowanyuser.imie = textBox1.Text;
            edytowanyuser.nazwisko = textBox2.Text;
            edytowanyuser.pesel = textBox3.Text;
            edytowanyuser.pensja = float.Parse(textBox4.Text);
            edytowanyuser.stanowisko = textBox5.Text;
            edytowanyuser.miasto = textBox6.Text;
            edytowanyuser.ulica = textBox7.Text;
            
        }
    }
}
1
public partial class EditEmployeeWindow : Form
    {
        Pracownik edytowanyuser;
        public EditEmployeeWindow(Pracownik pracownik)
        {
            InitializeComponent();
            edytowanyuser = pracownik
        }

         public void MainWindow_Load(object sender, EventArgs e)
        {
           textBox1.Text = edytowanyuser.imie;
           textBox2.Text = edytowanyuser.nazwisko;
           // itd...
        }
      
        private void button1_Click(object sender, EventArgs e)
        {
            edytowanyuser.imie = textBox1.Text;
            edytowanyuser.nazwisko = textBox2.Text;
            edytowanyuser.pesel = textBox3.Text;
            edytowanyuser.pensja = float.Parse(textBox4.Text);
            edytowanyuser.stanowisko = textBox5.Text;
            edytowanyuser.miasto = textBox6.Text;
            edytowanyuser.ulica = textBox7.Text;

        }
    }
Pracownik edytowanyuser = listBox1.SelectedItem as Pracownik;
EditEmployeeWindow edycjapracownika = new EditEmployeeWindow(edytowanyuser);

Zacznij nazywać kontrolki tak jak się powinno nazywać. Za niedługo zaczniesz pisać większe apki z więcej ilością okien i nie będziesz wiedział do czego jest textBox1

0

Bardzo dziękuję za pomoc i radę :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1