Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Smjenjivanje sadržaja na panelu

[es] :: .NET :: .NET Desktop razvoj :: Smjenjivanje sadržaja na panelu

[ Pregleda: 1610 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SpeedFreak
Marko Lekic
Crna Gora

Član broj: 19948
Poruke: 73
77.222.2.*



Profil

icon Smjenjivanje sadržaja na panelu10.01.2009. u 22:33 - pre 186 meseci
Imam malu aplikaciju koja radi sa bazom. Postoje dva režima rada: unos u bazu i pretraga. E sad, u toolbar-u imam dva dugmeta od kojih svako pokreće po jedan režim rada. Dakle, kad pritisnem dugme 'Unos' treba da dobijem forme za unos u bazu, a kad pritisnem 'Pretraga' umjesto tih formi da se prikažu forme za pretragu.
Razmišljam izmedju dva rješenja (a možda postoji i treće kog se nisam sjetio). Da napravim dva panela pri startovanju programa pa da im smjenjujem atribut visible ili da svaki put kad se pritisne novo dugme obrišem postojeće forme i napravim nove. Da li postoji neko bolje rješenje?
There are 10 types of people: those who understand binary and those who have
friends...
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
91.148.82.*

ICQ: 20785904


+4 Profil

icon Re: Smjenjivanje sadržaja na panelu12.01.2009. u 03:13 - pre 186 meseci
mozda tab kontrola...
 
Odgovor na temu

SpeedFreak
Marko Lekic
Crna Gora

Član broj: 19948
Poruke: 73
*.crnagora.net.



Profil

icon Re: Smjenjivanje sadržaja na panelu12.01.2009. u 16:22 - pre 186 meseci
To mi je prvo palo na pamet, ali mi vise odgovara da se na dugmad mijenja sadrzaj. Mala je aplikacija, tako da nije problem ovdje ni da stalno radim dispose() na stare forme i pravim nove jer ih ima 10tak na panelu, tako da se brzo to obavlja.
There are 10 types of people: those who understand binary and those who have
friends...
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.yu.



+395 Profil

icon Re: Smjenjivanje sadržaja na panelu12.01.2009. u 19:09 - pre 186 meseci
Sto ne probas da napravis 2 odvojene forme (unos i pretraga) i da ih dinamicki ucitavas u panel ,
taklo sto postavis FormBorderStyle na "None" , Parent property od forme da bude panel,
i da naravno setujes poziciju forme na Top-left tacku od panela ..

Code:
 
Panel p = new Panel() ; 
p.AutoScroll = true ; 

Form f1 = new Form() ; 

f1.FormBorderStyle = FormBorderStyle.None ; 
f1.Parent=  p ; 
f1.Top = p.Top ; 
f1.Left = p.Left ; 
f1.TopLevel = false ; 

p.Controls.Add(f1) ; 

f1.Show() ; 
f1.Focus() ; 

//zatvaranja forme .. palis drugu formu posle ovoga 
p.Controls.Remove(f1);
f1.Close();
f1.Dispose();

// opet isto ... 

Form f2 = new Form() ; 
..
..
..

Ovo naravno mozes da staviis u jednu funkciju koja prima Form kao parametar,
pa da je koristis odakle hoces da bi promenio trenutnu formu na panelu ...






Viva lollapalooza
 
Odgovor na temu

SpeedFreak
Marko Lekic
Crna Gora

Član broj: 19948
Poruke: 73
85.94.116.*



Profil

icon Re: Smjenjivanje sadržaja na panelu13.01.2009. u 11:44 - pre 186 meseci
pa nesto slicno sam i uradio. Ja imam dvije funkcije koje prave panele dinamicki, i dvije koje ih unistavaju (.Dispose()). kad se pritisne dugme za pretragu, unisti se panel za unos a kreira panel za pretragu i obratno. E sad, da li je dovoljno da unistim samo panel, a ne sve forme u njemu? koliko znam garbage collector bi trebao to da odradi za mene, jel tako?
There are 10 types of people: those who understand binary and those who have
friends...
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.yu.



+395 Profil

icon Re: Smjenjivanje sadržaja na panelu13.01.2009. u 12:10 - pre 186 meseci
Ne .. panel ne moras da brises , on ti sluzi samo kao kontejner za forme koje se dinamicki pojavljuju ili unistavaju .
ovaj kod sam ti dao je samo primera radi (Panel p = new Panel()) .
Panel ubacis kao kontrolu i on je u dizajn modu prazan .
U runtime - modu dinamicki ucistavas forme i smenjujes ih na klik u toolbaru .
E sad .. ne znam kako ti izgleda interfejs mozda ti ovo ne pije vodu ,
al i ako panel kreiras dinamicki .. ugasi formu sa Form.Close pa onda tek onda unisti panel ...


Viva lollapalooza
 
Odgovor na temu

SpeedFreak
Marko Lekic
Crna Gora

Član broj: 19948
Poruke: 73
85.94.123.*



Profil

icon Re: Smjenjivanje sadržaja na panelu14.01.2009. u 23:06 - pre 186 meseci
Vidim o čemu pričaš, ali ja sam mislio sljedeće: umjesto da imam jedan panel u koji ću da stavljam forme koje kasnije moram pojedinačno da brišem, ja bih da napravim dva panela (panel za dodavanje i panel za pretragu) koja ću (pri njihovom kreiranju) da napunim formama , a kad budem trebao da ih smijenim samo njih zatvorim i unistim a garbage collector da odradi ostalo:

ne obraćajte pažnju na sintaksu jer sam ovo napisao sad, nisam kopirao iz IDE-a. Ideja je važna :D

Code:

private System.Windows.Forms.Panel dodajPanel; //ovo je panel koji sadrži forme za dodavanje novog člana
private System.Windows.Forms.Panel pretragaPanel; //ovaj sadrži forme za pretragu

private void kreirajDodajPanel()
{
this.dodajPanel = new System.Windows.Forms.Panel();
this.dodajPanel.SuspendLayout();

//e sad ovdje pravim nove instance raznih formi: nekoliko dugmadi, textbox-ova i label-a (20-tak njih)
//i stavljam ih na ovaj panel

this.Controls.Add(this.panel1);
this.dodajPanel.ResumeLayout(false);
this.dodajPanel.PerformLayout();
}

private void kreirajPretragaPanel()
{
//Da ne pišem, ista stvar kao kod prethodne funkcije
}


Isto mi treba nečija potvrda da ja ovo ispravno radim.
Npr. u jednom trenutku mi je u programu prikazan panel za pretragu. Ja pritisnem dugme za dodavanje novog člana koje ima od prilike ovakav event handler:

Code:

//prije ovoga naravno ispitujem da li je prikazan panel za pretragu, u suprotnom ne bi radilo

this.pretragaPanel.Dispose();
kreirajDodajPanel();


There are 10 types of people: those who understand binary and those who have
friends...
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.yu.



+395 Profil

icon Re: Smjenjivanje sadržaja na panelu15.01.2009. u 09:54 - pre 186 meseci
Citat:

//e sad ovdje pravim nove instance raznih formi: nekoliko dugmadi, textbox-ova i label-a (20-tak njih)

TI dinamicki kreiras win kontrole na panelu ?
Zar ti nije lakse da napravis formu i njene kontrole u dizajn modu pa da formu dodajes na panel .
Namucices se ako dugmad ,textbox-ove dodajes setujes njihove evente i pozicioniras kros kod .


U 90% slucajeva ce gc da odradi posao za tebe ..
Pri unistavanju panela ako budes u nju dodavao formu
negde bi trebao da imas i Form.Close() da bi mogao u dialogu forme da
reagujes na (Form_Closing event) njeno zatvaranje sa mozda nekom porukom
(da li zelite da snimite izmenei itd) i eventualnim snimanjem u bazu



Viva lollapalooza
 
Odgovor na temu

SpeedFreak
Marko Lekic
Crna Gora

Član broj: 19948
Poruke: 73
85.94.123.*



Profil

icon Re: Smjenjivanje sadržaja na panelu15.01.2009. u 11:39 - pre 186 meseci
Citat:
TI dinamicki kreiras win kontrole na panelu ?
Zar ti nije lakse da napravis formu i njene kontrole u dizajn modu pa da formu dodajes na panel .

Ja u stvari to i napravim sve u dizajneru, poslije samo iskopiram kod iz InitializeComponent() funkcije.

Probaću na tvoj način preko forme, bolje mi zvuči. Hvala
There are 10 types of people: those who understand binary and those who have
friends...
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Smjenjivanje sadržaja na panelu

[ Pregleda: 1610 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.