[ *.net @ 17.07.2002. 21:13 ] @
Mozda je nekima glupo , ali kako u .NET-u da na neko dugme otvorim novu formu?
[ Shadowed @ 17.07.2002. 21:34 ] @
Nisam radio u .NET-u ali verovatno (ako mislis na VB.NET) kao u VB 6:

Private Sub Button1_Click()
frmFormName.show
End Sub
[ Dragi Tata @ 17.07.2002. 21:37 ] @
Npr:

Code:


private void cmdDugme_Click(object sender, System.EventArgs e)
{
    MojaForma drugaForma = new MojaForma();
                DialogResult polRes = drugaForma.ShowDialog(this);
}
[ jc denton @ 17.07.2002. 22:35 ] @
Ovo sto je Nemanja napisao izgledalo bi ovako ako je novi VB u pitanju i zelis da napravis instancu (kopiju) iste forme :

Dim form2 As System.Windows.Forms.Form = New Form1()
form2.Show()

ili samo :
Dim form2 As New Form1()
pa opet :
form2.Show()

poz.
[ Shadowed @ 17.07.2002. 22:50 ] @
Zar nema kao 6-ici da doda formu projektu pa je samo pozove form2.show?
Ili bas mora da je deklarise kao objekat i kreira iz klase?
[ jc denton @ 18.07.2002. 01:25 ] @
Ima, kako da ne. Klikni na meni Project/Add Windows Form pa onda izaberi Windows Form.
Samo da znas da sledece nece moci :
Form2.Show()

Nego moze ovako :
Dim form2 As New Form2()
form2.Show()

A zasto? Pa zato sto ako otvoris Object Browser i klines na Form2 (ili kako se vec zove forma koju si dodao) videces da lepo pise :
Public Class Form2 Inherits System.Windows.Forms.Form

Znaci Form2 je klasa a ne objekt. Da bi mogao da upotrebis tu klasu moras prvo da kreiras njenu 'radnu kopiju' tj. neki objekat , jer klasa nije nesto 'opipljivo' kao objekat i sa njom se ne radi direktno.

Nemanja, tvoj komentar?

[ Dragi Tata @ 18.07.2002. 16:59 ] @
Da, lepo objašnjeno. Klasa može da se zamisli kao "kalup" kojim "presuješ" objekte. Korisne stvari možeš da obaviš sa objektima a ne klasama.

Izuzetak su tzv shared (u C#-u static) metodi i članovi koji pripadaju svim objektima klase, pa se može smatrati i da pripadaju klasi, a ne objektu. Primer je Main, koji je uvek shared.
[ Shadowed @ 19.07.2002. 16:38 ] @
Ma, znam ja sta su klase i objekti ali nisam znao da kada dodas novu formu u projekat VB ne kreira objekat vec to moras ti sam da uradis (kao sto rekoh na pocetku diskusije nisam radio u .NET-u ali me veoma interesuje).
Pitam se da li VB zapravo izvede klasu Form2 iz klase Form pa ti onda pravis objekat iz klase form2 umesto iz klase Form.
[ jc denton @ 19.07.2002. 19:38 ] @
Sam si dao odgovor. Ali ako hoces da koristis gotovu formu na koju si 'naredjao' druge objekte (dugmice, labele ...) onda ces naravno da instanciras novi objekat iz nje, odnosno iz klase Form2.
Nadm se da sam te razumeo.

Pozdrav
[ degojs @ 20.07.2002. 10:21 ] @
>Pitam se da li VB zapravo izvede klasu Form2 iz klase Form pa ti onda pravis
>objekat iz klase form2 umesto iz klase Form

tacno.
Kad pogledas kod forme imas na samom pocetku

Inherits System.Windows.Forms.Form

sto znaci da nasledjuje svojstva/metode od te klase.

Upravo tako mozes i da pravis svoje kontrole.. nasledis iz npr textbox pa onda malo izmenis sta ti treba itd itd
[ Shadowed @ 20.07.2002. 10:39 ] @
Bas ce mi nedostajati ona jednostavnost iz 6-ice ali su nove mogucnosti sa nasledjivanjjem klasa mnogo dobre (konacno i VB ima potpuno OOB).
[ don_kiza @ 20.07.2002. 12:22 ] @
Ne znam za tebe, ali je meni novi koncept u .NET-u znatno logicniji. Da li postoji mogucnost nasledjivanja odredjenih svojstava iz recimo dve razlicite klase? Pitanje je cisto hipoteticko.
[ degojs @ 20.07.2002. 13:00 ] @
Ne, ne postoji mogucnost za multiple inheritance.
Klasa moze da nasledjuje iz samo jedne klase (koja opet moze da nasledjuje iz jedne klase, koja opet...), ali zato moze da implementira vise interface-a.

Public class c1
Inherits c2 <- okej
Inherits c3 <- greska
End class
[ jc denton @ 20.07.2002. 15:51 ] @
*.net je dobio odgovor na svoje pitanje bar tri puta u ovom thread-u, ali ga izgleda mrzi da procita ono sto smo napisali, kao sto to mrzi i novog moderatora degojs-a :)

Pozdrav svima
[ *.net @ 20.07.2002. 23:47 ] @
Kako mrzi, nee. Nego su neki preuzli razgovor pa nema sta reci.