[ 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.
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.