Title: 13
113
- Graphical User Interface Concepts Part I
2OBJECTIVES
- In this chapter you will learn
- Design principles of graphical user interfaces
(GUIs).
- How to create graphical user interfaces.
- How to process events that are generated by user
interactions with GUI controls.
- The namespaces that contain the classes for
graphical user interface controls and event
handling.
- How to create and manipulate Button, Label,
RadioButton, CheckBox, TextBox, Panel and
NumericUpDown controls.
- How to add descriptive ToolTips to GUI controls.
- How to process mouse and keyboard events.
3- 13.1 Introduction
- 13.2 Windows Forms
- 13.3 Event Handling
- 13.3.1 A Simple Event-Driven GUI
- 13.3.2 Another Look at the Visual Studio
Generated Code
- 13.3.3 Delegates and the Event-Handling
Mechanism
- 13.3.4 Other Ways to Create Event Handlers
- 13.3.5 Locating Event Information
- 13.4 Control Properties and Layout
- 13.5 Labels, TextBoxes and Buttons
- 13.6 GroupBoxes and Panels
- 13.7 CheckBoxes and RadioButtons
- 13.8 PictureBoxes
4- 13.9 ToolTips
- 13.10 NumericUpDown Control
- 13.11 Mouse-Event Handling
- 13.12 Keyboard-Event Handling
- 13.13 Wrap-Up
5Look-and-Feel Observation 13.1
- Consistent user interfaces enable a user to learn
new applications more quickly because the
applications have the same look and feel.
6Fig. 13.1 GUI controls in an Internet Explorer
window.
7Fig. 13.2 Some basic GUI controls.
8Fig. 13.3 Components and controls for Windows
Forms.
9Fig. 13.4 Common Form properties, methods and
events.
10Outline
SimpleEventExampleForm.cs
11Software Engineering Observation 13.1
- You should not expect return values from event
handlersevent handlers are designed to execute
code based on an action and return control to the
main program.
12Good Programming Practice 13.1
- Use the event-handler naming convention
controlName_eventName, so method names are
meaningful. Such names tell users what event a
method handles for what control. This convention
is not required, but it makes your code easier to
read, understand, modify and maintain.
13Fig. 13.6 First half of the Visual Studio
generated code file.
14Fig. 13.7 Second half of the Visual Studio
generated code file.
15Error-Prevention Tip 13.1
- The code generated by building a GUI in Design
mode is not meant to be modified directly, and
doing so can result in an application that
functions incorrectly. You should modify control
properties through the Properties window.
16Fig. 13.8 Viewing events for a Button control
in the Properties window.
17Fig. 13.9 List of Button events.
18Fig. 13.10 Click event details.
Event name
Event type
Event argument class
19Fig. 13.11 Class Control properties and
methods. (Part 1 of 2)
20Fig. 13.11 Class Control properties and
methods. (Part 2 of 2)
21Fig. 13.12 Manipulating the Anchor property of
a control.
22Fig. 13.13 Anchoring demonstration.
23Fig. 13.14 Docking a Button to the top of a
Form.
24Fig. 13.15 Control layout properties.
25Look-and-Feel Observation 13.2
- For resizable Forms, ensure that the GUI layout
appears consistent across various Form sizes.
26Fig. 13.16 Snap lines in Visual Studio 2005.
Snap line to help align controls on their left
sides
27Fig. 13.17 Common Label properties.
28Fig. 13.18 TextBox properties and events.
29Fig. 13.19 Button properties and event.
30Look-and-Feel Observation 13.3
- Although Labels, TextBoxes and other controls can
respond to mouse clicks, Buttons are more natural
for this purpose.
31Outline
LabelTextBoxButtonTestForm.cs (1 of 2)
32Outline
LabelTextBoxButtonTestForm.cs (2 of 2)
33Look-and-Feel Observation 13.4
- Panels and GroupBoxes can contain other Panels
and GroupBoxes for more complex layouts.
34Fig. 13.21 GroupBox properties.
35Fig. 13.22 Panel properties.
36Look-and-Feel Observation 13.5
- You can organize a GUI by anchoring and docking
controls inside a GroupBox or Panel. The GroupBox
or Panel then can be anchored or docked inside a
Form. This divides controls into functional
groups that can be arranged easily.
37Look-and-Feel Observation 13.6
- Use Panels with scrollbars to avoid cluttering a
GUI and to reduce the GUIs size.
38Fig. 13.23 Creating a Panel with scrollbars.
39Outline
GroupboxPanelExampleForm.cs (1 of 2)
40Outline
GroupboxPanelExampleForm.cs (2 of 2)
41Fig. 13.25 CheckBox properties and events.
42Outline
CheckBoxTestForm.cs (1 of 2)
43Outline
CheckBoxTestForm.cs (2 of 2)
44Look-and-Feel Observation 13.7
- Use RadioButtons when the user should choose only
one option in a group.
45Look-and-Feel Observation 13.8
- Use CheckBoxes when the user should be able to
choose multiple options in a group.
46Fig. 13.27 RadioButton properties and events.
47Software Engineering Observation 13.2
- Forms, GroupBoxes, and Panels can act as logical
groups for RadioButtons. The RadioButtons within
each group are mutually exclusive to each other,
but not to RadioButtons in different logical
groups.
48Outline
RadioButtonsTestForm.cs (1 of 7)
49Outline
RadioButtonsTestForm.cs (2 of 7)
50Outline
RadioButtonsTestForm.cs (3 of 7)
51Outline
RadioButtonsTestForm.cs (4 of 7)
52Outline
RadioButtonsTestForm.cs (5 of 7)
53Outline
(a)
(b)
RadioButtonsTestForm.cs (6 of 7)
(d) OK button type
(c) OKCancel button type
(f) YesNoCancel button type
(e) AbortRetryIgnore button type
54Outline
(g) YesNo button type
(h) RetryCancel button type
RadioButtonsTestForm.cs (7 of 7)
55Fig. 13.29 PictureBox properties and event.
56Outline
PictureBoxTestForm.cs (1 of 2)
57Outline
(a)
(b)
PictureBoxTestForm.cs (2 of 2)
(c)
58Fig. 13.31 ToolTip properties and events.
59Outline
ToolTipExampleForm.cs
(a)
(b)
60Fig. 13.33 Demonstrating the component tray.
61Fig. 13.34 Setting a controls tool tip text.
62Fig. 13.35 NumericUpDown properties and event.
63Outline
interestCalculatorForm.cs (1 of 2)
64Outline
interestCalculatorForm.cs (2 of 2)
Click to increase number of years
NumericalUpDown control
Click to decrease number of years
65Fig. 13.37 Mouse events and event arguments.
(Part 1 of 2.)
66Fig. 13.37 Mouse events and event arguments.
(Part 2 of 2.)
67Outline
PainterForm.cs (1 of 2)
68Outline
PainterForm.cs (1 of 2)
69Fig. 13.39 Keyboard events and event arguments.
(Part 1 of 2.)
70Fig. 13.39 Keyboard events and event arguments.
(Part 2 of 2.)
71Outline
KeyDemoForm.cs (1 of 3)
72Outline
KeyDemoForm.cs (2 of 3)
73Outline
(a) H pressed
KeyDemoForm.cs (3 of 3)
(b) F12 pressed
(c) pressed
(d) Enter pressed