Wywołanie tej samej formy z dwóch innych okien [C#]


(Adam Kasprzak) #1

Witam!

Jestem w trakcie pisania programu w C#. Utworzyłem sobie formę zawierającą jakieś tam kontrolki (nazwijmy ją B). Następnie wywołuję ją z formy A za pomocą

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

        // listaTowarow listaTowarowForm = new listaTowarow(this);

        // listaTowarowForm.Owner = this;

        // listaTowarowForm.ShowDialog();

        }

następnie chciałbym tę samą formę B wywołać z formy C. Myślałem, że wystarczy do buttona zastosować ten sam kod. Niestety pojawiają się błędy:

Mógłbym prosić kogoś o pomoc i wyjaśnienie co robię nieprawidłowo?

Pozdrawiam i dziękuję za pomoc!


(Fiołek) #2

Musisz dodać nowy konstruktor który będzie przyjmował 'moj_program.fModyfikacjaZamowienia' jako pierwszy parametr. Kompilator nie może ot tak skonwertować sobie jednego typu w drugi i dlatego tak sie dzieje(zresztą mówi o tym problemie błąd).

Tak nawiasem mówiąc po co przekazujesz do formy formę? Jeśli chcesz przekazać jakieś dane to lepiej je przekazać(będzie to bardziej uniwersalne).


(Adam Kasprzak) #3

dzięki za odpowiedź i pomoc. Co do Twojego pytania - nie chodziło mi o przekazanie formy do formy, ale wywołanie jej z dwóch różnych miejsc w programie.

Na formie, którą chcę wywołać z różnych miejsc wpisałem coś takiego:

public partial class listaTowarow : Form

    {

        noweZamowienie zamReczne;

        public listaTowarow(noweZamowienie zamR)

        {

            InitializeComponent();

            this.zamReczne = zamR;

        }



        fModyfikacjaZamowienia modyfZam;

        public listaTowarow(fModyfikacjaZamowienia modyfikacjaZam)

        {

            InitializeComponent();

            this.modyfZam = modyfikacjaZam;

        }

}

i zadziałało.

Jeszcze raz dzięki.

Pozdrawiam!