350 likes | 464 Views
CSCI 3327 Visual Basic Chapter 10: Windows Forms GUI: A Deeper Look. UTPA – Fall 2011. Objectives. In this chapter, you will Learn the design of graphical user interfaces (GUIs) Get familiar with programming mouse and keyboard events Know how to create and manipulate controls
E N D
CSCI 3327 Visual Basic Chapter 10: Windows Forms GUI: A Deeper Look UTPA – Fall 2011
Objectives • In this chapter, you will • Learn the design of graphical user interfaces (GUIs) • Get familiar with programming mouse and keyboard events • Know how to create and manipulate controls • E.g., Panel, ToolTip, Menu, MonthCalendar, LinkLabel, and CheckedListBox,
Controls and Components • ToolBox • A form is a container for controls and components • Visual Studio generates code of controls and components when you drag them onto the form
Common Properties of a Form • AcceptButton • Button that is clicked when Enter key is pressed • AutoScroll • CancelButton • Button that is clicked when Esc key is pressed • FormBorderStyle • Font • Text
Common Methods & Events of a Form • Methods • Close • Close a form and release its resources • Hide • Hide a form without releasing or destroying its resources • Show • Display a hidden form • Events • Load
Create Event Handlers • In the code editor window • Select a control (e.g. button) from the left combo box • Select an event from the right combo box • Code is generated automatically
Control Properties and Methods • Properties • TabIndex • Controls receive focus in the order of TabIndex property • TabStop • Prevent the control from receiving the focus in this manner • Enabled vs. Visible • Methods • Focus • Hide: set Visible property to False • Show: set Visible property to True
GroupBoxes and Panels • Properties of GroupBox • Controls • Text • Properties of Panel • AutoScroll • BorderStyle • Controls
Example 14.12: PanelDemo.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • Display the button you clicked on Panel • Hanldes Button1.Click, Button2.Click • The same method for multiple events • Ctype (sender, Button).Text
Tool Tips • A helpful text that appears when the mouse hovers over a GUI control • Drag ToolTip component to form • It appears below the form in the design mode • Each control will have an extra property • ToolTip on ToolTip1
Mouse-Event Handling • Mouse events • Clicks, presses, and moves • For most mouse events, information about the event is passed to the event-handling method by an object of class MouseEventArgs • Mouse pointer's x- and y-coordinates • The mouse button pressed (Right, Left or Middle) • The number of times the mouse was clicked
Mouse-Event Handling (cont'd) • Mouse events • Mouse event with event argument of type EventArgs • MouseEnter, MouseLeave • Mouse event with event argument of type MouseEventArgs • MouseDown, MouseHover, MouseMove, MouseUp • Class MouseEventArgs properties • Button, Clicks, X, Y
Example 14.18: Painter.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • Painter_MouseMove • e As MouseEventArgs • e.X, e.Y • g As Graphics = CreateGraphics() • G.FillEllipse(New SolidBrush(Color.BlueViolet), e.X, e.Y, 4, 4) 4 (e.X, e.Y) 4
Keyboard-Event Handling • Key Events with Event Arguments of Type KeyEventArgs • KeyDown, KeyUp • Key Events with Event Arguments of Type KeyPressEventArgs • KeyPress • Class KeyPressEventArgs properties • KeyChar (ASCII character for the key pressed) • Handled (indicating wether the KeyPress event was handled) • Class KeyEventArgs properties • Alt, Control, Shift, Handled, KeyCode
Example 14.20: KeyDemo • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • ByVal e As KeyPressEventArgs • e.KeyChar • ByVal e As KeyEventArgs • e.Alt, e.Shift, e.Control • e.KeyCode.ToString(), e.KeyData.ToString(), e.KeyValue.ToString()
Menu • Menu • Shortcut Keys • Type an ampersand (&) symbol before the character to be underlined • To display &, use && • To add shortcut keys for menu items • Set the ShortcutKeys property • Other types of menu items • Separator bar • ComboBox • MenuItem • TextBox
Example 14.25: MenuTest.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • blackToolStripMenuItem.Checked = True • displayLabel.Font = New Font("Times New Roman", 14, displayLabel.Font.Style) • Application.Exit()
MonthCalendar Control • Properties • FirstDayOfWeek • MaxDate, MinDate • MaxSelectionCount • SelectionRange • Event • DateChanged
Example 14.29: DateTimePicker • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • dropOffDateTimePicker.MinDate=DateTime.Today • dropOffDateTimePicker.MaxDate=DateTime.Today.AddYears(1) • Dim dropOffDate As DateTime = dropOffDateTimePicker.Value • dropOffDate.DayOfWeek=DayOfWeek.Friday • dropOffDate.AddDays(3).ToLongDateString()
LinkLabel Control • Display links to other resources • Example 14.31: • URL:http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • cDriveLinkLabel.LinkClicked • cDriveLinkLabel.LinkVisited = True • Process.Start(“C:\”) • Process.Start(“http://www.deitel.com”) • Process.Start(“notepad”)
Process.Start(" ") • Effect of Process.Start(" ") • Start Run • cmd • calc • notepad
ListBox and CheckedListBox Controls • ListBox properties • MultiColumn • SelectedIndex • -1 – no items are selected • If multiple items are selected, one of selected indices is returned • SelectedIndices • For multiple selected items • SelectedItem, SelectedItems • SelectionMode: None, One, MultiSimple, MultiExtended • Sorted: alphabetically, False by default
ListBox and CheckedListBox Controls (cont'd) • ListBox methods • ClearSelected • GetSelected • Take an index as an argument, and return True if the corresponding item is selected • myListBox.Items.Add(myListItem) • ListBox Events • SelectedIndexChanged
ListBox and CheckedListBox Controls (cont'd) • CheckedListBox properties • CheckedItems • A collection of items that are checked • CheckedIndices • A collection of indices for all checked items • CheckOnClick • False by Default • SelectionMode • Determine how many items can be checked: One or None
ListBox and CheckedListBox Controls (cont'd) • CheckedListBox Method • GetItemChecked • Take an index and returns True if the corresponding items is checked • CheckedListBox Event • ItemCheck • ItemCheckEventArgs • CurrentValue • Index • NewValue
Example 14.35: CheckedListBoxTest.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • itemCheckedListBox.SelectedItem.ToString() • If e.NewValue = CheckState.Checked
Multiple Document Interface (MDI) Windows • Single document interface (SDI) vs. multiple document interface (MDI) • MDI: Parent and child windows MDI child MDI child MDI parent
Multiple Document Interface (MDI) Windows (cont'd) • Specify a form is an MDI container • Set IsMdiContainer property to True • Create a class for child forms • Solution Explorer Add Windows Form… • Create a new child form • Set MdiParent property to the parent form • Call the child form’s Show method
Multiple Document Interface (MDI) Windows (cont'd) • MDI container features • MdiChildren property • Return an array of child Form references • ActiveMdiChild property • Return a reference to the active child window • Tracking child windows in menus • MenuStrip class provides property MdiWindowListItem • To check which child windows are open in an MDI container
Multiple Document Interface (MDI) Windows (cont'd) • Arrange child windows • Parent form has method LayoutMdi • Tiled windows (value TileHorizontal or TileVertical) • Cascaded windows (value Cascade)
Example 14.42: UsingMDI.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • Dim child = new ChildForm(“XXX”, “vb2008htp") • child.MdiParent = Me • child.Show() • Me.LayoutMdi(MdiLayout.Cascade) • Me.LayoutMdi(MdiLayout.TileHorizontal) • Me.LayoutMdi(MdiLayout.TileVertical)
Animation with the Timer Component • Timer component generates Tick events at fixed time interval • Timer component has Interval property • The number of milliseconds between events • By default, timers are disabled • Set Enabled property to True
Example 14.47: AnimationDemo.vb • URL: • http://media.pearsoncmg.com/ph/esm/deitel/vb_htp_2010/codeexamples.html • Display a new image every 50 milliseconds • Handles animationTimer.Tick