Chapter 12-GUI Concepts I

Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

Chapter 12-

GUI Concepts I
Outline
12.1 Introduction
12.2 Windows Forms
12.3 Event-Handling Model
12.3.1 Basic Event Handling
12.4 Control Properties and Layout
12.5 Labels, TextBoxes and Buttons
12.6 GroupBoxes and Panels
12.7 CheckBoxes and RadioButtons
12.8 PictureBoxes
12.9 Mouse-Event Handling
12.10 Keyboard-Event Handling
12.1 Introduction
• GUI
– Graphical User Interface
• Allows visual interaction
• Event driven
– User interaction generates events
• Distinctive “look” and “feel”
• Learn new applications more quickly
12.1 Introduction
12.1 Introduction
• GUI Components
– Objects with which user interacts
• Event generation
– Contained in Toolbox
• Control
– Visible by graphical representation at runtime.
– ex: Label control.
• Component
– Are not visible during runtime.
– ex: Timer component
12.1 Introduction
Comp o ne nt De sc rip tio n
Label An area in which icons or uneditable text can be displayed.
Textbox An area in which the user inputs data from the keyboard. This area
also can display information.
Button An area that triggers an event when clicked.
CheckBox A component that is either selected or not selected.
ComboBox A drop-down list of items from which the user can make a selection
either by clicking an item in the list or by typing into a box.
ListBox An area in which a list of items is displayed. The user can make a
selection from the list by clicking on any element. Multiple elements
can be selected.
Panel A container in which components can be placed.
Scrollbar A component that allows the user to access a range of values that
normally cannot fit in the controller’s container.
Fig. 12.2 Som e b a sic GUI c om p one nts.

Fig. 12.2 Some basic GUI components.


12.2 Windows Forms
• Form
– Acts as a container for components and controls.
– Graphical element used to create GUIs.
– A form is a graphical element that appears on the
desktop : it can be a dialog or a window.
– Click and drag component from Toolbox
• Code generated
– Component is instantiated
– Basic properties are set
12.2 Windows Forms
Controls
• Windows Forms contains a variety of controls that you
can place on forms.

• A control is an object that can be drawn on to the Form


to enable or enhance user interaction with the
application.

• TextBoxes, Buttons, Labels, Radio Buttons, etc. All these


Windows Controls are based on the Control
class, the base class for all controls.
12.2 Windows Forms

Fig. 12.3 Components and controls for Windows Forms.


12.2 Windows Forms
Control’s Dimensions:
The distance from the left border to the right
border of a control is referred to as its Width
property. In the same way, the distance from
the top to the bottom borders of a control is
its Height value. This can be illustrated as
follows:
12.2 Windows Forms
Control’s Dimensions:
12.2 Windows Forms

• When the user interacts with a control via


the mouse or keyboard, events are generated.

• Typically, events are messages sent by a


program to signal to an object or a set of
objects that an action has occurred.
12.2 Windows Forms
• Each class we present (i.e., form, component and
control) is in the System.Windows.Forms
namespace.
• Class Form, the basic window used by Windows
applications, is fully qualified as:
System.Windows.Forms.Form.
• Likewise, class Button actually is:
System.Windows.Forms.Button.
12.2 Windows Forms
Form Properties and Events Description / Delegate and Event Arguments
Common Properties
AutoScroll Boolean value that allows or disallows the use of scrollbars to
appear when needed.
FormBorderStyle Border of the form (e.g., none, single, 3D, sizable).
Font Font of text displayed on the form, and the default font of controls
added to the form.
Text Text in the form’s title bar.
Common Methods
Close Closes a form and releases all resources. A closed form cannot be
reopened.
Hide Hides form (does not release resources).
Show Displays a hidden form.
Common Events (Delegate EventHandler, event arguments
EventArgs)
Load Occurs before a form is shown. This event is the default when the
form is double-clicked in the Visual Studio .NET designer.
Fig. 12.4 Common Form properties and events.
12.3 Event-Handling Model
• GUIs are event driven—they generate events when a
program’s user interacts with the GUI.

• Typical interactions include moving the mouse,


clicking the mouse, clicking a button, typing in a
textbox, selecting an item from a menu and closing a
window.

• Event information is passed to event handlers, which


are methods that are called as a result of specific
events.
12.3 Event-Handling Model
• For example suppose we want the label lblOutput to
respond when clicked by showing a message box
with the statement Label was clicked.
Private Sub lblOutput_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles lblOutput.Click
MessageBox.Show("Label was clicked.")
End Sub

• An event is a message sent by an object announcing


that something has happened.
• When events occurs, information is passed to Event
handlers ( Here it is lblOutput.Click).
12.3 Event-Handling Model
• Events are implemented using delegates,
which are objects that can call the methods of
other objects for you.
• Whenever you create or use an event in code,
you are using its delegate.
• When the event is thrown, the framework
examines the delegate behind the event and
then calls the function that the delegate
points to.
12.3 Event-Handling Model
• So, Delegates are form of object-oriented function pointer
that allows a function to be invoked indirectly by way of a
reference to the function.

• They act as an intermediate between an object that generates


the event and the event handler.

• The inclusion of multiple handlers for one event is called


event multicasting.
calls Handler 1 for event E
calls
Object A creates event E Delegate for event E Handler 2 for event E

Handler 3 for event E


12.3 Event-Handling Model

• Once event is generated, system calls every


method (Event Handler) referenced by the
delegate, every method in delegate must have
same signature since all methods are passed
same information.

• Controls have already predefined delegates


corresponding to every event they generate.
12.3 Event-Handling Model
In general, the format of the event-handling
method is:
Private Sub ControlName_EventName(ByVal sender As
Object, _
ByVal e As System.EventArgs) Handles
ControlName.EventName
event-handling code
End Sub

• where the name of the event handler is, by


default, the name of the control, followed by
an underscore (_) and the name of the event.
12.3 Event-Handling Model

Event handlers take two arguments:


1. An Object (usually sender) : A reference to
the object that generated the event.

2. An event arguments object (e) : An instance of


type EventArgs. Class EventArgs is the base class
for objects that contain event information.
12.3 Event-Handling Model

Fig. 12.6 Events section of the Properties window.


12.3 Event-Handling Model

Fig. 12.8 List of Form events.


12.4 Control Properties and Layout
Class Control Properties Description
and Methods
Common Properties
BackColor Sets the background color of the control.
BackgroundImage Sets the background image of the control.
Enabled Indicates whether the control is enabled (i.e., if the user can
interact with it). A disabled control will still be displayed, but
portions of the control will appear in gray. The appearance Text
Focused
Font
Indicates whether a control has the focus.
Sets the Font to use in Text property of control.
property can vary
ForeColor Sets the foreground color of the control. This is usually the color of depending on the context.
the Text property.
TabIndex Sets the tab order of the control. When the Tab key is pressed, the
For example, the text of a
focus is moved to various controls according to the tab order. This
order can be set by the programmer.
Windows Form is its title
TabStop Indicates whether user can employ the Tab key to select the bar, but the text of a button
control. If True, then this feature is enabled.
Text Sets the text associated with the control. The location and appears on its face.
appearance varies depending on the type of control.
TextAlign Establishes the alignment of the text on the control—possibilities
are one of three horizontal positions (left, center or right) and one
of three vertical positions (top, middle or bottom).
Visible Indicates whether the control is visible.
Common Methods
Focus Transfers the focus to the control.
Hide Hides the control (sets Visible to False).
Show Shows the control (sets Visible to True).
Fig. 12.10 Class Control properties and methods.
12.4 Control Properties and Layout
• Method Focus
– Transfers focus to control
• Active control
• Tap index
• Method Hide
– Hides control
• Visible property is false
• Method Show
– Shows control
• Visible property is true
12.4 Control Properties and Layout
• Anchoring
– Specifying layout of controls within container.
– Controls remain fixed distances from inside of
container.
• Docking
– Sets dimensions of control to dimensions of
container at all times.
12.4 Control Properties and Layout

Fig. 12.11 Anchoring demonstration.


12.4 Control Properties and Layout

Fig. 12.12 Manipulating the Anchor property of a control.


12.4 Control Properties and Layout

Fig. 12.13 Docking demonstration.


12.4 Control Properties and Layout
Com m on La yo ut De sc rip tio n
Prop erties
Anchor Attaches control to the side of parent container. Used during resizing.
Possible values include top, left and right.
Dock Allows controls to extend themselves along the sides of their
containers—values cannot be combined.
DockPadding (for Sets the dock spacing for controls inside the container. Default is zero,
containers) causing controls to appear flush with the side of the container.
Location Specifies the location of the upper-left corner of the control, in
relation to its container.
Size Specifies the size of the control. Takes a Size structure, which has
properties Height and Width.
MinimumSize, Indicates the minimum and maximum size of the form.
MaximumSize (for
Windows Forms)
Fig. 12.14 Control la yout p rop erties.

Fig. 12.14 Control layout properties.


12.5 Labels, TextBoxes and Buttons
• Label
– Displays read-only text
• Textbox
– Displays text
– Text input by user
• Button
– Click to trigger action
12.5 Labels, TextBoxes and Buttons
Common Label Desc rip tion / Delega te a nd Event Arg uments
Prop erties
Font The font used by the text on the Label.
Text The text that appears on the Label.
TextAlign The alignment of the Label’s text on the control. Possibilities are
one of three horizontal positions (left, center or right) and one
of three vertical positions (top, middle or bottom).
Fig. 12.15 Common Label p rop erties.

Fig. 12.15 Common Label properties.


12.5 Labels, TextBoxes and Buttons
TextBox Prop erties De sc rip tio n / De le g a te a nd Event Arg ume nts
a nd Events
Common
Properties
AcceptsReturn If True, pressing Enter creates a new line (if textbox is configured
to contain multiple lines.) If False, pressing Enter clicks the
default button of the form.
Multiline If True, textbox can span multiple lines. The default value is False.

PasswordChar If a character is entered, the TextBox becomes a password box, and


the stated character replaces all characters typed. If no character is
specified, Textbox displays the typed text.
ReadOnly If True, TextBox has a gray background, and its text cannot be
edited. The default value is False.
ScrollBars For multiline textboxes, indicates which scrollbars appear (none,
horizontal, vertical or both).
Text Specifies the text to be displayed in the text box.
Common Events (Delegate EventHandler, event arguments
EventArgs)
TextChanged Raised when text changes in TextBox (i.e., when the user adds or
deletes characters). When a user double-clicks the TextBox control
in design view, an empty event handler for this event is generated.
Fig. 12.16 TextBox p rop e rties a nd events.

Fig. 12.16 TextBox properties and events.


12.5 Labels, TextBoxes and Buttons

Button p rop erties a nd De sc rip tio n / De le g a te a nd Event Arg ume nts


eve nts
Common
Properties
Text Specifies text displayed on the Button face.
Common Events (Delegate EventHandler, event arguments
EventArgs)
Click Is raised when user clicks the control. When a user double-clicks on
the Button control in design view, an empty event handler for this
event is generated.
Fig. 12.17 Button p rop erties a nd events.

Fig. 12.17 Button properties and events.


1. ' Fig. 12.18: LabelTextBoxButtonTest.vb
2. ' Using a textbox, label and button to display the hidden
3. ' text in a password box.
4.
5. Public Class FrmButtonTest
6. ' handles cmdShow_Click events
7. Private Sub cmdShow_Click(ByVal sender As System.Object, _ The password character
8. ByVal e As System.EventArgs) Handles cmdShow.Click is set by assigning the
9. asterisk character
(*) to the PasswordChar
10. lblOutput.Text = txtInput.Text
property.
11. End Sub ' cmdShow_Click
12.
13. End Class ' FrmButtonTest

The label’s text property is set


equal to the value of the textbox’s
text property, which was
entered by the user
12.6 GroupBoxes and Panels
• Groupboxes
– Arrange controls on a GUI
– Can display captions
– Do not include scrollbars
• Panels
– Arrange controls on a GUI
– Cannot display captions
– Include scrollbars
12.6 GroupBoxes and Panels
GroupBox Prop erties De sc rip tio n
Controls Lists the controls that the GroupBox contains.
Text Specifies text displayed on the top portion of the GroupBox (its
caption).
Fig. 12.19 GroupBox p rop erties.

Fig. 12.19 GroupBox properties.

Panel Prop erties De sc rip tio n


AutoScroll Indicates whether scrollbars appear when the Panel is too small to
hold its controls. Default is False.
BorderStyle Sets the border of the Panel (default None; other options are
Fixed3D and FixedSingle).
Controls Lists the controls that the Panel contains.
Fig. 12.20 Panel p rop e rties.

Fig. 12.20 Panel properties.


12.6 GroupBoxes and Panels

Fig. 12.21 Creating a Panel with scrollbars.


1 ' Fig. 12.22: GroupBoxPanelExample.vb
2 ' Using GroupBoxes and Panels to hold buttons.
3
4 Public Class FrmGroupBox
5
6 ' event handlers to change lblMessage
7 Private Sub cmdHi_Click(ByVal sender As System.Object, _
8 ByVal e As System.EventArgs) Handles cmdHi.Click
9
10 lblMessage.Text = "Hi pressed"
11 End Sub ' cmdHi_Click
12
13 ' bye button handler
14 Private Sub cmdBye_Click(ByVal sender As System.Object, _
15 ByVal e As System.EventArgs) Handles cmdBye.Click
16
17 lblMessage.Text = "Bye pressed"
18 End Sub ' cmdBye_Click
19
20 ' far left button handler
21 Private Sub cmdLeft_Click(ByVal sender As System.Object, _
22 ByVal e As System.EventArgs) Handles cmdLeft.Click
23
24 lblMessage.Text = "Far left pressed"
25 End Sub ' cmdLeft_Click
26 ' far right button handler
27 Private Sub cmdRight_Click(ByVal sender As System.Object, _
28 ByVal e As System.EventArgs) Handles cmdRight.Click
29
30 lblMessage.Text = "Far right pressed"
31 End Sub ' cmdRight_Click
32
33 End Class ' FrmGroupBox
12.7 CheckBoxes and RadioButtons
• State Buttons: has a state of on/off – true/false
– CheckBoxes
• Any number can be checked at a time
– RadioButtons
• Usually organized in groups and only one checked at a
time
12.7 CheckBoxes and RadioButtons
CheckBox eve nts a nd De sc rip tio n / De le g a te a nd Event Arg ume nts
p rop erties
Common
Properties
Checked Indicates whether the CheckBox has been checked.
CheckState Indicates whether the Checkbox is checked (contains a black
checkmark) or unchecked (blank). An enumeration with values
Checked, Unchecked or Indeterminate.
Text Specifies the text displayed to the right of the CheckBox (called the
label).
Common Events (Delegate EventHandler, event arguments
EventArgs)
CheckedChanged Raised every time the Checkbox is either checked or unchecked.
When a user double-clicks the CheckBox control in design view, an
empty event handler for this event is generated.
CheckStateChanged Raised when the CheckState property changes.

Fig. 12.23 CheckBox p rop erties a nd eve nts.

Fig. 12.23 CheckBox properties and events.


1 ' Fig. 12.24: CheckBoxTest.vb
2 ' Using CheckBoxes to toggle italic and bold styles.
3 To enable the font to be
4 Public Class FrmCheckBox
changed, the programmer
5 ' use Xor to toggle italic, keep other styles same
must set the Font property
6 Private Sub chkItalic_CheckedChanged _
to a Font object.
7 (ByVal sender As System.Object, ByVal e As System.EventArgs) _
8 Handles chkItalic.CheckedChanged
9 The Font constructor
10 lblOutput.Font = New Font(lblOutput.Font.Name, _ that we use takes the
11 lblOutput.Font.Size, lblOutput.Font.Style _
font name, size and
12 Xor FontStyle.Italic)
style.
13 End Sub ' chkItalic_CheckedChanged
14
15 ' use Xor to toggle bold, keep other styles same The style is a member
16 Private Sub chkBold_CheckedChanged (ByVal sender As System.Object, _ of the FontStyle
17 ByVal e As System.EventArgs) Handles chkBold.CheckedChanged
enumeration, which
18
contains the font styles
19 lblOutput.Font = New Font(lblOutput.Font.Name, _
Regular, Bold, Italic,
20 lblOutput.Font.Size, lblOutput.Font.Style _
21 Xor FontStyle.Bold)
Strikeout and
22 End Sub ' chkBold_CheckedChanged
Underline.
23
24 End Class ' FrmCheckBox
Why Xor?
• Styles can be combined via bitwise Operator:
operators that perform manipulation on bits.
• Assume that FontStyle.Bold is represented by
bits 01 and that FontStyle.Italic is represented
by bits 10. When we Or both styles, we obtain
the bitset 11.
01 = Bold
Or 10 = Italic
------------------
11 = Bold and Italic
Why Xor?
• The Or operator is helpful in the creation of style
combinations, as long as we do not need to undo the
bitwise operation. However, what happens if we
want to undo a style combination ?

• The Xor operator enables us to accomplish the Or


operator behavior while allowing us to undo
compound styles.
Why Xor?
• Assume, again, that FontStyle.Bold is represented by bits 01
and that FontStyle.Italic is represented by bits 10. When we
Xor both styles, we obtain the bitset 11.
01 = Bold
Xor 10 = Italic
---------------------
11 = Bold and Italic
• Now, suppose that we would like to remove the FontStyle.Bold
style from the previous combination of FontStyle.Bold and
FontStyle.Italic. The easiest way to do so is to reapply the Xor
operator to the compound style and FontStyle.Bold.
11 = Bold and Italic
Xor 01 = Bold
------------------------
10 = Italic
12.7 CheckBoxes and RadioButtons

RadioButton De sc rip tio n / De le g a te a nd Event Arg ume nts


p rop erties a nd events
Common
Properties
Checked Indicates whether the RadioButton is checked.
Text Specifies the text displayed to the right of the RadioButton (called
the label).
Common Events (Delegate EventHandler, event arguments
EventArgs)
Click Raised when user clicks the control.
CheckedChanged Raised every time the RadioButton is checked or unchecked.
When a user double-clicks the TextBox control in design view, an
empty event handler for this event is generated.
Fig. 12.25 RadioButton p rop e rties a nd events.

Fig. 12.25 RadioButton properties and events.


1 ' Fig. 12.26: RadioButtonTest.vb
2 ' Using RadioButtons to set message window options.
3
4 Public Class FrmRadioButton
5
6 Private iconType As MessageBoxIcon
7 Private buttonType As MessageBoxButtons
8
9 ' display message box and obtain dialogue button clicked
10 Private Sub cmdDisplay_Click(ByVal sender _
11 As System.Object, ByVal e As System.EventArgs) _
12 Handles cmdDisplay.Click
13
14 Dim dialog As DialogResult = MessageBox.Show( _
15 "This is Your Custom MessageBox", "VB", buttonType, _
16 iconType)
17
18 ' check for dialog result and display on label
19 Select Case dialog
20
21 Case DialogResult.OK
22 lblDisplay.Text = "OK was pressed"
23
24 Case DialogResult.Cancel
25 lblDisplay.Text = "Cancel was pressed"
26 Case DialogResult.Abort
27 lblDisplay.Text = "Abort was pressed"
28
29 Case DialogResult.Retry
30 lblDisplay.Text = "Retry was pressed"
31
32 Case DialogResult.Ignore
33 lblDisplay.Text = "Ignore was pressed"
34
35 Case DialogResult.Yes
36 lblDisplay.Text = "Yes was pressed"
37
38 Case DialogResult.No
39 lblDisplay.Text = "No was pressed"
40 End Select
41
42 End Sub ' cmdDisplay_Click
43
44 ' set button type to OK
45 Private Sub radOk_CheckedChanged(ByVal sender _
46 As System.Object, ByVal e As System.EventArgs) _
47 Handles radOk.CheckedChanged
48
49 buttonType = MessageBoxButtons.OK
50 End Sub ' radOk_CheckedChanged
51 ' set button type to OkCancel
52 Private Sub radOkCancel_CheckedChanged(ByVal sender _
53 As System.Object, ByVal e As System.EventArgs) _
54 Handles radOkCancel.CheckedChanged
55
56 buttonType = MessageBoxButtons.OKCancel
57 End Sub ' radOkCancel_CheckedChanged
58
59 ' set button type to AbortRetryIgnore
60 Private Sub radAbortRetryIgnore_CheckedChanged(ByVal sender _
61 As System.Object, ByVal e As System.EventArgs) _
62 Handles radAbortRetryIgnore.CheckedChanged
63
64 buttonType = MessageBoxButtons.AbortRetryIgnore
65 End Sub ' radAbortRetryIgnore_CheckedChanged
66 ' set button type to YesNoCancel
67 Private Sub radYesNoCancel_CheckedChanged(ByVal sender _
68 As System.Object, ByVal e As System.EventArgs) _
69 Handles radYesNoCancel.CheckedChanged
70
71 buttonType = MessageBoxButtons.YesNoCancel
72 End Sub ' radYesNoCancel_CheckedChanged
73 ' set button type to YesNo
74 Private Sub radYesNo_CheckedChanged(ByVal sender _
75 As System.Object, ByVal e As System.EventArgs) _
76 Handles radYesNo.CheckedChanged
77
78 buttonType = MessageBoxButtons.YesNo
79 End Sub ' radYesNo_CheckedChanged
80
81 ' set button type to RetryCancel
82 Private Sub radRetryCancel_CheckedChanged(ByVal sender _
83 As System.Object, ByVal e As System.EventArgs) _
84 Handles radRetryCancel.CheckedChanged
85
86 buttonType = MessageBoxButtons.RetryCancel
87 End Sub ' radRetryCancel_CheckedChanged
88
89 ' set icon type to Asterisk when Asterisk checked
90 Private Sub radAsterisk_CheckedChanged(ByVal sender _
91 As System.Object, ByVal e As System.EventArgs) _
92 Handles radAsterisk.CheckedChanged
93
94 iconType = MessageBoxIcon.Asterisk
95 End Sub ' radAsterisk_CheckedChanged
96
97 ' set icon type to Error when Error checked
98 Private Sub radError_CheckedChanged(ByVal sender _
99 As System.Object, ByVal e As System.EventArgs) _
100 Handles radError.CheckedChanged
101
102 iconType = MessageBoxIcon.Error
103 End Sub ' radError_CheckedChanged
104
105 ' set icon type to Exclamation when Exclamation checked
106 Private Sub radExclamation_CheckedChanged(ByVal sender _
107 As System.Object, ByVal e As System.EventArgs) _
108 Handles radExclamation.CheckedChanged
109
110 iconType = MessageBoxIcon.Exclamation
111 End Sub ' radExclamation_CheckedChanged
112
113 ' set icon type to Hand when Hand checked
114 Private Sub radHand_CheckedChanged(ByVal sender _
115 As System.Object, ByVal e As System.EventArgs) _
116 Handles radHand.CheckedChanged
117
118 iconType = MessageBoxIcon.Hand
119 End Sub ' radHand_CheckedChanged
120 ' set icon type to Information when Information checked
121 Private Sub radInformation_CheckedChanged(ByVal sender _
122 As System.Object, ByVal e As System.EventArgs) _
123 Handles radInformation.CheckedChanged
124
125 iconType = MessageBoxIcon.Information
126 End Sub ' radInformation_CheckedChanged
127
128 ' set icon type to Question when Question checked
129 Private Sub radQuestion_CheckedChanged(ByVal sender _
130 As System.Object, ByVal e As System.EventArgs) _
131 Handles radQuestion.CheckedChanged
132
133 iconType = MessageBoxIcon.Question
134 End Sub ' radQuestion_CheckedChanged
135
136 ' set icon type to Stop when Stop checked
137 Private Sub radStop_CheckedChanged(ByVal sender _
138 As System.Object, ByVal e As System.EventArgs) _
139 Handles radStop.CheckedChanged
140
141 iconType = MessageBoxIcon.Stop
142 End Sub ' radStop_CheckedChanged
143
144 ' set icon type to Warning when Warning checked
145 Private Sub radWarning_CheckedChanged(ByVal sender _
146 As System.Object, ByVal e As System.EventArgs) _
147 Handles radWarning.CheckedChanged
148
149 iconType = MessageBoxIcon.Warning
150 End Sub ' radWarning_CheckedChanged
151
152 End Class ' FrmRadioButtons
12.8 PictureBoxes
• PictureBoxes
– Display images
• Bitmap
• GIF (Graphics Interchange Format)
• JPEG (Joint Photographic Expert Group)
• Icons

– Image property
• Image to be displayed
12.8 PictureBoxes
PictureBox De sc rip tio n / De le g a te a nd Event Arg ume nts
p rop erties a nd events
Common
Properties
Image Sets the image to display in the PictureBox.
SizeMode Enumeration that controls image sizing and positioning. Values are
Normal (default), StretchImage, AutoSize and
CenterImage. Normal places image in top-left corner of
PictureBox, and CenterImage puts image in middle (both cut
image off if it is too large). StretchImage resizes image to fit in
PictureBox. AutoSize resizes PictureBox to hold image.
Common Events (Delegate EventHandler, event arguments
EventArgs)
Click Raised when user clicks the control. Default event when this control is
double clicked in the designer.
Fig. 12.30 PictureBox p rop erties a nd e vents.

Fig. 12.30 PictureBox properties and events.


1 ' Fig. 12.31: PictureBoxTest.vb
2 ' Using a PictureBox to display images. Whenever a user clicks picImage,
3 the image changes.
4 Imports System.IO
5
6 Public Class FrmPictureBox To find the images, we use class
7 Directory (namespace System.IO)
9 Private imageNumber As Integer = -1 method GetCurrentDirectory
12
13 ' replace image in picImage
14 Private Sub picImage_Click(ByVal sender As System.Object, _ We use imageNumber to
15 ByVal e As System.EventArgs) Handles picImage.Click append the proper number,
16 enabling us to load either
17 ' imageNumber from 0 to 2 image0, image1 or image2.
18 imageNumber = (imageNumber + 1) Mod 3 The value of Integer
19
imageNumber stays
20 ' create Image object from file, display in PictureBox
between 0 and 2 because of
21 picImage.Image = Image.FromFile _
the modulus calculation
22 (Directory.GetCurrentDirectory & "\images\image" & _
23 imageNumber & ".bmp")
24 End Sub ' picImage_Click Class Image has a method
25 FromFile, which takes a
26 End Class ' FrmPictureBox String (the image file) and
creates an Image object.

You might also like