[ Hond @ 04.09.2019. 13:20 ] @
Pozdrav, novi sam ovdje .

MOzeli mi neko objasniti da li je potrebno pisati delegate ili se moze sa get i set
pozvati public void iz usercontrol koji je prikazan u panel na formi .

hvala


ovo je kod na onload forme koji otvara usercontrol u panel-u

Na formi :
Code:

 UserControl CtrlAns = new cntAnsp();
pnlShowControl.Controls.Clear();
            pnlShowControl.Controls.Add(CtrlAns);
            CtrlAns.Dock = DockStyle.Fill;
            CtrlAns.Show();


Code:

OnClick button- a :
{
// probao sam ovako ali nece

UserControl CtrlAns = new cntAnsp();

 CtrlAns.Kontrole();
CtrlAns.Refresh();

/// ovo ne radi .
}



NA UserControl

Code:

public void Kontrole();        // ovaj public treba pozvati sa forme
{
txtBlabla.Text = "Prikaz";
txtIzraz.Text = "DA";
// itd...
}
[ Shadowed @ 07.09.2019. 22:51 ] @
Postoje dve greske. Sta zapravo tvoj kod radi?
Prvi deo kreira novu instancu tvoje kontrole, dodaje je na panel i podesava.
Drugi deo kreira novu instancu tvoj kontrole i poziva metod Kontrole(). Tu je prva greska jer si kreirao novu instancu (primerak) umesto da koristis onu kreiranu u prvom delu. To je kao da zaposlis radnika i posaljes ga da radi u magacinu a onda posle nekog vremena zaposlis novog i pitas ga kako je bilo u magacinu.
Da bi ti radilo kako treba, potrebno je da pristupis toj kontroli koju si kreirao u prvom delu koda. To mozes ili tako sto je dobijes iz pnlShowControl.Controls(0) ako samo nju imas na tom panelu ili tako sto je smesis u neku promenljivu koju deklarises na nivou forme.

Druga greska je sto ti je promenljiva CtrlAns deklarisana kao UserControl. UserControl nema metod Kontrole. Potrebno je da je deklarises kao cntAnsp. No, u svakom slucaju taj drugi deo koda nije dobar kao sto je objasnjeno u prethodnom pasusu.