Visual Basic.NETPag.1 Hoofdstuk 10 - Grafische User Interface : Deel 2 Inleiding Menus ListBoxes ComboBoxes Multiple Document Interface (MDI) Windows
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Menus Menu klassen MainMenu : Standaard Windows menu bar bovenaan formulier ContextMenu : popup menu’s (snelmenu’s) MenuItem : een element binnen MainMenu of ContextMenu Voorbeeld Menu Checked menu item Submenu Disabled menu item Seperator Shortcut key Alt key shortcut Menu Item
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Menus Creatie menu’s at design time via Menu Designer Drop een MainMenu of Context Menu control op Form Typ de menu items in Stel Name property (Rechtermuis > Edit Names) Stel overige properties in in en codeer events Properties menu item Text : de tekst die in het menu verschijnt. –Voor hot key (toegangstoets), gebruik &. –Voor seperator : “-” of rechtermuisklik > Insert seperator Name : naam van het menu item voor gebruik in code Checked : indien een optie geselecteerd moet kunnen worden Enabled : al dan niet beschikbaar maken van item (grijs maken) MDIList : lijst van alle actieve MDI kindformulieren RadioCheck : weergave van geselecteerd menu element –True : toont radiobutton –False : Toont checkmark MenuItems : lijst van submenu items voor een bepaald item Shortcut : sneltoets (bvb Ctrl + Letter). Selecteer uit lijst ShowShortCut : al dan niet tonen shortcut Visible : al dan niet zichtbaar
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Menus Events menu item : Click Oproepen van Context Menu Instellen van ContextMenu property van bijhorende control Of via code : de methode Show : geeft snelmenu weer op een bepaalde positie Creatie menu’s at runtime Dim mnuMain As New MainMenu() Dim mnuItem1 As New MenuItem() Dim mnuItem2 As New MenuItem() mnuItem1.Text = "&File" mnuMain.MenuItems.Add(mnuItem1) mnuItem2.Text = “&Exit" mnuMain.MenuItems(0).MenuItems.Add(mnuItem2) AddHandler mnuItem2.Click, AddressOf NewExitHandler Me.Menu = mnuMain
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Listbox Gebruik : een lijst met voorafgedefinieerde items. Men kan 1 of meerdere items uit de lijst selecteren. Erft van ListControl Opmaken van een lijst (kan waarden of objecten bevatten): At design-time : Items –property. Geef lijst van waarden in At run-time : Toevoegen van items 1 per 1 : lstRegion.Items.Add(“Belgium”) lstRegion.items.Add(“France”) Toevoegen van een array van waarden of objecten : Dim regionArr As String() regionArr = New String() {“Belgium”, “France"} lstRegion.Items.AddRange(regionArr) Toevoegen op een specifieke plaats lstRegion.Items.Insert(2,“Belgium”) ‘op de derde plaats
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Listbox Listbox benaderen Items : verzameling van alle items in de keuzelijst (collection, index start vanaf 0) For i=0 to lstRegion.Items.Count – 1 Messagebox.Show(lstRegion.Items(i) ) Next SelectedIndex : index van het geselecteerde item - 1 : geen item geselecteerd lstRegion.Items(lstRegion.SelectedIndex) ‘igv value type lstRegion. Items(lstRegion.SelectedIndex).ToString() ‘igv ref type SelectedItem : retourneert verwijzing naar geselecteerd item lstRegion.SelectedItem SetSelected : selecteren/deselecteren van item lstRegion.SetSelected(1, True) Text : waarde geselecteerd item
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Listbox Verwijderen van items verwijderen van 1 item lstRegion.Items.RemoveAt(lstRegion.SelectedIndex) lstRegion.Items.Remove(lstRegion.SelectedItem) leegmaken lijst : lstRegion.Items.Clear Items sorteren Sorted –True : listitems worden alfabetisch gesorteerd –False : listitems worden getoond in volgorde van toevoeging Wat wordt getoond in listbox als deze objecten bevat? De strings getoond in de listbox zijn het resultaat van de ToString methode van het object, tenzij DisplayMember property : naam van property van object die je wenst te tonen Event : SelectedIndexChanged
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag Listbox Meervoudige selectie SelectionMode One : Meervoudige selectie is onmogelijk. MultiSingle : Meervoudige selectie mogelijk. Om een item te selecteren moet een gebruiker op het item klikken. Om het terug te deselecteren moet de gebruiker terug op het item klikken (of igv pijltjes op de spatiebalk). MultiExtended : Meerdere selecties mogelijk adhv CTRL+klik of SHIFT+klik. SelectedItems: retourneert collectie van geselecteerde items. SelectedIndices : retourneert collectie met indexen van geselecteerde items
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag ComboBox Gebruik : Listbox, maar het geselecteerde item wordt afzonderlijk getoond. Vervolgkeuzelijst met invoervak Ondersteunt geen meervoudige selecties. Properties DropDownStyle : Dropdown : laat toe een item uit te lijst te selecteren of een item in het tekstvak in te voeren. Simple : idem dropdown, maar de lijst blijft altijd zichtbaar. DropdownList : je kan enkel een item uit de lijst selecteren.
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI SDI (Single Document Interface) : 1 venster/keer openen MDI (Multiple Document Interface) : Werken met meerdere (instanties van) formulieren binnen een ouderformulier. Kenmerken van MDI ouderformulier 1 project kan meerdere MDI parent formulieren hebben Het oudervenster en kindvenster worden door 1 pictogram op de taakbalk vertegenwoordigd. Als een ouderformulier geminimaliseerd wordt en vervolgens hersteld, keren alle kindformulieren terug naar de positie die ze voor het minimaliseren hadden Als er een menu voor het kindformulier gedefinieerd, verschijnt dit in de menubalk van het ouderformulier afhankelijk van de ingestelde properties
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Kenmerken van MDI kindformulier at runtime Elk kindformulier wordt binnen de begrenzing van het ouderformulier weergegeven. Ze kunnen enkel binnen deze zone verplaatst worden of geresized. Wanneer een kindformulier geminimaliseerd is, wordt het pictogram in het oudervenster weergegeven, niet op de taakbalk Wanneer een kindformulier gemaximaliseerd is, vult het het binnengebied van het ouderformulier volledig. De titelbalk van het ouderformulier bevat dan zowel de naam van ouder als naam van gemaximaliseerd kind Windows geeft een child met de formBorderStyle property ingesteld op Sizable, zelf een default size. Dit kan je vermijden door een Fixed borderstyle te nemen Child forms kunnen niet modaal getoond worden
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Creatie van MDI project Creatie MDI parent formulier (container venster) Creëer een nieuwe form en stel IsMDIContainer property gelijk aan True Ontwerp menu, toolbar, statusbar Creatie kindformulier Creëer een nieuwe form Voeg volgende code toe om childform te openen Dim frmChild As ChildFormClass() frmChild.MDIParent = Me frmChild.Show() Opstartformulier in Project properties Ouderformulier Of Kindformulier
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Properties MDI Child IsMDIChild : (read-only). Geeft true terug als form een MDI Child MDIParent : specifieert MDI Parent Form van child MDI Parent ActiveMDIChild : retourneert Form dat het huidige actieve Child is (Nothing indien geen actief Child venster) IsMDIContainer : True als MDI Parent MDIChildren : retourneert de MDI Childs als array van forms Events MDIChildActivate : gegenereerd als MDI Child gesloten wordt of geactiveerd wordt
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Methodes LayoutMDI : bepaalt display van MDI Childs 1 parameter nl de enumeratie MDILayout –MdiLayout.ArrangeIcons –MdiLayout.Cascade –MdiLayout.TileHorizontal –MdiLayout.TileVertical Opm : de property MDIList van menu item Window zorgt ervoor dat onderaan een seperator bar en een lijst van de open childvensters getoond wordt
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Menu’s Parent en childs kunnen verschillende menu’s hebben, die gemerged worden als Child geactiveerd wordt Properties menu item MergeOrder : volgorde van menu items bij merging (laagste waarde komt eerst) MergeType : bepaalt hoe menu’s worden samengevoegd –Add : childmenu wordt toegevoegd aan Parent als nieuw menu –Replace : vervangt parent menu in merged menu –MergeItems : menu’s worden gecombineerd –Remove : menuitem wordt niet getoond in merged menu
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Hoe differentiëren tussen de verschillende child vensters? Private Sub mnuVChild_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles mnuFProducts.Click Dim frm As ChildFormClass Static intCount As Integer frm = New ChildFormClass() intCount += 1 frm.Text = frm.Text & " " & intCount.ToString() ' Set the caption to be unique. frm.MdiParent = Me frm.Show() End Sub
Hoofdstuk 10 : Grafische User Interface : Deel 2Visual Basic.NETPag MDI Creatie van een modaal venster Form : property Borderstyle = FixedDialog Elke knop van Form : stel DialogResult property in Gebruik methode ShowDialog om venster modaal te tonen. Kontroleer returnwaarde van ShowDialog Private Sub btnCities_Click( ByVal sender As Object,ByVal e As System.EventArgs) Handles btnCities.Click Dim strCity As String Dim strState As String ' Code removed here. Dim frmCityState As New frmCityState() If frmCityState.ShowDialog() = DialogResult.OK Then strCity = frmCityState.txtCity.Text strState = frmCityState.txtState.Text If strCity <> String.Empty AndAlso Not cboCities.Items.Contains(strCity) Then cboCities.Items.Add(strCity) End If If strState <> String.Empty AndAlso Not cboStates.Items.Contains(strState) Then cboStates.Items.Add(strState) End If End Sub