Forum » Programiranje » VB.net MDI in formi splošno
VB.net MDI in formi splošno
strel ::
Kar nekaj stvari se je pri VB spremnilo od VB6.
Zanima me če ima gdo kako pametno proceduro (npr: PokaziForm(FormName as "recimo" form)) , s katero bi prikazoval forme iz menija na MDI formu.
Če pa že ni kode kaka ideja
Problem je namreč v tem da zaenkrat uporabljam
Dim NewForm as new Childform 'Childform bi rad prebral iz spremenljivke
Zanima me če ima gdo kako pametno proceduro (npr: PokaziForm(FormName as "recimo" form)) , s katero bi prikazoval forme iz menija na MDI formu.
Če pa že ni kode kaka ideja
Problem je namreč v tem da zaenkrat uporabljam
Dim NewForm as new Childform 'Childform bi rad prebral iz spremenljivke
alesrosina ::
hm, dej malcek bolj podrobno opisi kaj te muci, nekak ne razumem kaj mislis z "forme iz menija" in da bi rad ChildForm prebral iz spremenljivke?
strel ::
Ok .
Mam MDI form npr MENI
Ta form je kao jedro aplikacije na njem sta recimo progressbar in statusbar spodaj ter meni na vrhu
iz tega menija kličem vse ostale forme ki so seveda MDIchildi. Tu pa seveda sedaj nastane mali problemčič ,ker sem bil navajem programiranja v VB6.
V VB6 si naredil procedura
Public sub PokaziForm(ImeForma as form)
if ImeForma.visible = False then ' pogledaš če je form že prikazan če je mu daš samo fokus
ImeForma.show
.... tu še pride kaka koda za pozicioniranje ....
else
ImeForma.setfocus
end if
Na tem MDI formu dodaš na meni klik samo call PokaziForm(recimo VnosNečesa)
in je to to
v VB.net pa form postane class ki nima takih lastnosti
in moraš reč Dim nekaspremenlijvka as new recimo VnosNNečesa
in pol moram več kode pisat za klik na vsak meniju item
Upam da sem tole kolker tolk napisal da se ve za kaj gre
Uglavnem bi mel eno proceduro ki bi jo klical s eno samo spremenlivko in to je imeforma, ker je teh formov ponavadi en mali milijon.
Mam MDI form npr MENI
Ta form je kao jedro aplikacije na njem sta recimo progressbar in statusbar spodaj ter meni na vrhu
iz tega menija kličem vse ostale forme ki so seveda MDIchildi. Tu pa seveda sedaj nastane mali problemčič ,ker sem bil navajem programiranja v VB6.
V VB6 si naredil procedura
Public sub PokaziForm(ImeForma as form)
if ImeForma.visible = False then ' pogledaš če je form že prikazan če je mu daš samo fokus
ImeForma.show
.... tu še pride kaka koda za pozicioniranje ....
else
ImeForma.setfocus
end if
Na tem MDI formu dodaš na meni klik samo call PokaziForm(recimo VnosNečesa)
in je to to
v VB.net pa form postane class ki nima takih lastnosti
in moraš reč Dim nekaspremenlijvka as new recimo VnosNNečesa
in pol moram več kode pisat za klik na vsak meniju item
Upam da sem tole kolker tolk napisal da se ve za kaj gre
Uglavnem bi mel eno proceduro ki bi jo klical s eno samo spremenlivko in to je imeforma, ker je teh formov ponavadi en mali milijon.
alesrosina ::
Hm, ce te prav razumem, bi rad naredil meni "Windows" v katerem bi imel spisek vseh odprtih mdiChildov? to ti VB.net naredi avtomaticno, v tist meni ki bi to rad ime mu nastavi property MdiList na True.
Hm, pa sej ti definiras recimo
Dim myForma as new Form1
'pol pa dostopas do vseh funkcij na to foro:
myForma.show() 'naprimer
a je to to kar bi rad imel?
Hm, pa sej ti definiras recimo
Dim myForma as new Form1
'pol pa dostopas do vseh funkcij na to foro:
myForma.show() 'naprimer
a je to to kar bi rad imel?
strel ::
Lep pozdravčič ...
Evo kode:
ko klikneš na item iz menija (najbol osnovna sintaksa)
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Dim newform As New VnosRacuna
NewForm.MdiParent = Me
NewForm.Show()
End Sub
Jas pa bi rad dosegel
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
call PokaziForm(ImeForma)
end sub
Bistvo je da ne znam definrat :
Dim newform as new "TO BI MORAL PREBRAT IZ SPREMENLJIVKE"
Evo kode:
ko klikneš na item iz menija (najbol osnovna sintaksa)
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Dim newform As New VnosRacuna
NewForm.MdiParent = Me
NewForm.Show()
End Sub
Jas pa bi rad dosegel
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
call PokaziForm(ImeForma)
end sub
Bistvo je da ne znam definrat :
Dim newform as new "TO BI MORAL PREBRAT IZ SPREMENLJIVKE"
alesrosina ::
napises posebno funkcijo ki ti to klice, naprimer:
v click eventu pa zadevo klices takole (oziroam kjerkoli):
a bo?
Private Function prikaziForm(ByVal imeForme As Form) imeForme.MdiParent = Me imeForme.Show() End Function
v click eventu pa zadevo klices takole (oziroam kjerkoli):
Me.prikaziForm(new ImeForme)
a bo?
Zgodovina sprememb…
- spremenil: alesrosina ()
strel ::
Mislim da ne gre tako ker zateži ,pravi da je ta form type in ga ne moreš uporabiz kot expresion.
Al pa sej jst smotan spet
Al pa sej jst smotan spet
alesrosina ::
hgm? Primer simpl forme:
Meni dela cistzo lepo .... dej pokazi kodo, kako to izvajas? Tole more delat, ker men cist lepo dela.
Povej se ker Visual studio nucas (2002 ali 2003)?
Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " '/......./ #End Region Private Function prikaziForm(ByVal imeForme As Form) imeForme.MdiParent = Me imeForme.Show() End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.prikaziForm(New test2) End Sub End Class
Meni dela cistzo lepo .... dej pokazi kodo, kako to izvajas? Tole more delat, ker men cist lepo dela.
Povej se ker Visual studio nucas (2002 ali 2003)?
strel ::
Zaenkrat je tole kar sem hotel :
Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
PokaziForm(New Nastavitve)
End Sub
Private Function PokaziForm(ByVal ImeForme As Form)
Dim Form As System.Windows.Forms.Form
For Each Form In Me.MdiChildren
If Form.Name = ImeForme.Name Then
If Form.WindowState = FormWindowState.Minimized Then Form.WindowState = FormWindowState.Normal
Form.BringToFront()
Form.Visible = True
ImeForme = Nothing
Exit Function
End If
Next
ImeForme.MdiParent = Me
ImeForme.Show()
End Function
Narobe sem klical form ( brez NEW )
Hvala za vstrajno pomoč , se še priporočam ....
Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
PokaziForm(New Nastavitve)
End Sub
Private Function PokaziForm(ByVal ImeForme As Form)
Dim Form As System.Windows.Forms.Form
For Each Form In Me.MdiChildren
If Form.Name = ImeForme.Name Then
If Form.WindowState = FormWindowState.Minimized Then Form.WindowState = FormWindowState.Normal
Form.BringToFront()
Form.Visible = True
ImeForme = Nothing
Exit Function
End If
Next
ImeForme.MdiParent = Me
ImeForme.Show()
End Function
Narobe sem klical form ( brez NEW )
Hvala za vstrajno pomoč , se še priporočam ....
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Visual studio .NET] Rabim pomočOddelek: Programiranje | 1604 (1446) | darkolord |
» | Enostavno tiskanje v VB.NETOddelek: Programiranje | 2235 (2149) | skorc_norc |
» | VB in kk dobit Ip od račnalnikaOddelek: Programiranje | 1212 (1046) | alesrosina |
» | API+VBOddelek: Programiranje | 2107 (1811) | webblod |
» | Visual basic Progress barOddelek: Programiranje | 1573 (1506) | Lunik |