170 likes | 321 Views
Hoofdstuk 10 - Grafische User Interface : Deel 2. Inleiding Menus ListBox es ComboBox es Multiple Document Interface (MDI) Windows. 10.2 Menus. Menu klassen MainMenu : Standaard Windows menu bar bovenaan formulier ContextMenu : popup menu’s (snelmenu’s)
E N D
Hoofdstuk 10 - Grafische User Interface : Deel 2 Inleiding Menus ListBoxes ComboBoxes Multiple Document Interface (MDI) Windows Visual Basic.NET
10.2 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 Shortcut key Alt key shortcut Submenu Menu Item Disabled menu item Seperator Checked menu item Visual Basic.NET
10.2 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 Visual Basic.NET
10.2 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 Visual Basic.NET
13.4 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 Visual Basic.NET
13.4 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 Visual Basic.NET
13.4 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 Visual Basic.NET
13.4 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 Visual Basic.NET
13.5 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. Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 formBorderStyleproperty ingesteld op Sizable, zelf eendefault size. Dit kan je vermijden door eenFixed borderstyle te nemen • Child forms kunnen niet modaal getoond worden Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 Visual Basic.NET
13.9 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 If End Sub Visual Basic.NET