Springen naar inhoud


Tutorial info

  • Toegevoegd op: 08 feb 2011 13:17
  • Bekeken: 4873
 


* * * * *
0 Beoordeling

Hoe werken met Forms zoals Docking Controls en meer.

Geplaatst door pascalbianca op08 feb 2011 13:17
Werken met meerdere Forms.

Ik zal beginnen met een heel eenvoudig voorbeeld om het concept te illustreren.
Ik begin met een nieuwe Windows application die twee Forms bevat.
Form1, die automatisch zal worden weer gegeven wanneer het project wordt uitgevoerd, wanneer u op de knop drukt zal een het tweede Form worden getoond.
Ter illustratie van de communicatie van het ene naar het andere,zal Form2 ook een knop hebben, en het zal de caption van Form1 veranderen.
Maak eerst een nieuw project aan en dan 2 Forms.

Geplaatste afbeelding
Geplaatste afbeelding

Maken en weergeven van een Instance van een Form

De eerste stap is het toevoegen van code aan Form1 en weergeven van een instance van Form2.
Een voeg een knop aan Form1, waarbij het een Standaardnaam Button1 heeft.
Nu, dubbelklik op de knop om de gebeurtenisprocedure voor de Click event te maken.
Als u de code is weergegeven plaatsen we onderstaande code, deze zou een nieuwe Form openen telkens als u op de knop klikt, dit zal denkelijk niet uw gewenste resultaat tonen:

Visual Basic Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Dim myForm As New Form2
		myForm.Show()
	End Sub


Geplaatste afbeelding

In plaats daarvan, zal u de code kunnen verplaatsen van de Form1 variabele naar een waarde op module niveau en vervolgens bepalen als het al in de Click event bestaat.
Vervolgens maakt u het formulier, als hij niet reeds bestaat.

Visual Basic Code:
Dim myForm As Form2

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		If myForm Is Nothing Then
			myForm = New Form2
		End If
		myForm.Show()
	End Sub


Met de myForm variabele doen we een verwijzing naar het zojuist gemaakte form.
De belangrijkste reden voor het gebruik van deze variabele is zodat u kunt bijhouden van een enkel exemplaar van Form2, in plaats van het maken van een nieuwe en telkens op de  knop klik.
Nu, laten we Formulier2 terug praten naar Form1.

Communicatie tussen twee Forms

Als u Form2 wilt laten communiceren met Form1, moet u een verwijzing naar Form1 opgeven.
Als u dit doet, zal u een two-way communication moeten maken.
De eenvoudigste manier om dit te bereiken is een public variabele (van het type Form1) toevoegen aan Form2, als dit:

Visual Basic Code:
   Inherits System.Windows.Forms.Form
	Public myCaller As Form1


Vervolgens kunnen we onze code aanpassen met onderstaande code om de Reference met property door te geven naar de Form2.

Visual Basic Code:
Dim myForm As Form2

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		If myForm Is Nothing Then
			myForm = New Form2
			myForm.myCaller = Me
		End If
		myForm.Show()
	End Sub


Als code in Form2 toegang moet hebben in Form1, kan het nu via de myCaller variabele doen.
Een knop toevoegen aan Formulier2 en zet deze code in, zoals weer gegeven hieronder:

Visual Basic Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		If Not myCaller Is Nothing Then
			myCaller.Text = Now.ToLongTimeString
		End If
	End Sub


Door te klikken op de knop op Form1 zal een exemplaar van Form2 starten en vult de Form2  myCaller variabele met een verwijzing naar Form1.
Door op de knop op Form2 te drukken zal Form1 worden benaderd via de myCaller variabele (als het was ingesteld) en wijzigt de titel.

Geplaatste afbeelding

Dit was een heel eenvoudig voorbeeld van communicatie tussen meerdere formulieren.

Anchoring and Docking

De Anchor en Dock properties van een Form zijn twee afzonderlijke eigenschappen.
Anchor verwijst naar de positie die een besturings element relatief ten opzichte van de randen van het formulier heeft.
Textbox, bijvoorbeeld, dat is anchored aan de linkerrand van een formulier en blijft in dezelfde positie als het formaat van het formulier als deze wordt gewijzigd.
Docking verwijst naar de hoeveel ruimte u wilt dat het besturings element op moet nemen op het formulier.
Als u een besturings element aan de linkerkant van het  Form docked, zal het zich uitstrekken naar de hoogte van de vorm, maar de breedte zal hetzelfde blijven.
Neem een blik bij enkele voorbeelden, tot de dingen ophelderen.

Anchoring

Start een nieuwe windows-project.
Twee textboxen toevoegen aan uw Form, en de multiline eigenschappen van beide op True instellen.
Verander de hoogte van de twee textboxen.
Klik op textbox1 en zoek de Anchor property in de Propertiesbox:

Geplaatste afbeelding

De standaard waarde is anchor van het besturings element naar de Top en de linkerrand van het formulier.
Klik op de drop-down box om het in te stellen:

Geplaatste afbeelding

De knop in het midden vertegenwoordigt uw besturings element.
De grote witte gebieden zijn nogal verwarrend - ze doen eigenlijk niets!
Als u de eigenschap wilt wijzigen, klik je op de kleinere grijze of witte rechthoeken tussen de grote witte rechthoek.
Klik nogmaals om deze te deselecteren.

Geplaatste afbeelding

De volgende afbeelding heeft de textbox anchored aan de rechter rand en onderrand van het formulier:

Geplaatste afbeelding

Merk op waar de cursor zich in de beelden bevind en wat er is veranderd.
Klik op de pijl op de drop down box om te bevestigen van uw keuzes.

Om te zien welk effect dit alles heeft, doet u het volgende::
• Zet de Anchor property van de textbox1 op default TOP,LEFT
• Verander de Anchor van Textbox2 naar NONE (alle smalle rechthoekjes moeten wit zijn)
• Start nu het programma en sleep de hoeken van de Form naar buiten, dit zal uw Form vegroten.

Wat u nu opvalt is dat textbox1 op zijn plaats blijft staan en dat van Textbox2 de linkerhoek veranderd.

Stop uw programma.
Wijzig de Anchor eigenschappen van de twee tekst vakken naar het geen wat u wilt.
Voer uw Form opnieuw uit en kijk wat er gebeurt.
Probeer anchoring een textbox links en rechts van het formulier. Kijk wat er gebeurt.

Docking

Docking is vergelijkbaar met Anchoring, maar dit keer vult het besturings element een bepaald gedeelte van het formulier.
Om te zien hoe het werkt, klik op een van uw tekst vakken en zoek de Dock-eigenschap.
Klik op de pijl om een drop-down box te tonen:

Geplaatste afbeelding

Dit keer, zijn alle rechthoeken zoals knoppen.
U kunt alleen aan één kant op een tijd stip dokken, en de standaard instelling staan op geen.
Klik op een knop om te zien wat het doet met uw textbox.
Klikt u op de middelste en de textbox zal het hele formulier vullen.

Docking kan vrij nuttig zijn wanneer u gebruikt maakt van het besturings element voor splitter control en panels, zodat u een Windows-stijl interface kunt maken.

ToolBar

Toolbars worden vaak gezien onder menu's en zijn vol knoppen.
De knoppen die worden weer gegeven kan op vele manieren worden weer gegeven, afhankelijk van de gekozen opties.
Ze kunnen als standaard drukknoppen worden weer gegeven, wissel knoppen, keuze knoppen en die kunnen weer worden weergeven van een vervolg keuze menu en knoppen voor het weer geven van afbeeldingen.

Toolbars zijn meestal docked langs de bovenkant van de bovenliggende venster.
Zij kunnen eigenlijk gedokt worden aan elke zijde van het venster.
Toolbars kunnen knopinfo weergeven wanneer de gebruiker de muisaanwijzer op een toolbar knop aanwijst.
De toolbars laten de gebruikers toegang toestaan tot de meest gebruikte opties , die worden gegroepeerd weer gegeven afhankelijk van het besturings element dat momenteel actief is.

Geplaatste afbeelding
Geplaatste afbeelding

StatusBar

Een StatusBar wordt meestal gezien aan de onderkant van het venster en ze bieden de gebruiker met-sommige extra informatie-zoals--het nummer van de pagina dat ze aan het bewerken zijn.
U kunt ook panelen toevoegen aan de statusbalk, zodat verschillende groepen van informatie weer in verschillende delen van de balk gegeven worden.
De ShowPanels property kunt u bepalen als de ShowPanels worden getoond of niet.

Geplaatste afbeelding
Geplaatste afbeelding

Standaard word deze balk getoont als je hem plaatst net als de overige controls.
Wil je hem pas later tonen kan men hem bv. Met deze code eerst onzichtbaar maken:

Visual Basic Code:
StatusStrip1.Visible = False
En later met
Visual Basic Code:
StatusStrip1.Visible = True
om terug laten tonen.

Er zijn natuurlijk nog tal van mogelijkheden, maar zijn enkele voorbeelden gegeven om een indruk te krijgen.

Download pdf
Geplaatste afbeelding

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)