0% found this document useful (0 votes)
31 views51 pages

2002 Prentice Hall. All Rights Reserved

The document discusses concepts related to graphical user interfaces and Windows Forms. It introduces common GUI components like labels, text boxes, buttons and their properties. It describes the event handling model and shows how to write an event handler method in C# code. It also covers other topics like control properties, layouts and different types of events.

Uploaded by

usamayaseen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views51 pages

2002 Prentice Hall. All Rights Reserved

The document discusses concepts related to graphical user interfaces and Windows Forms. It introduces common GUI components like labels, text boxes, buttons and their properties. It describes the event handling model and shows how to write an event handler method in C# code. It also covers other topics like control properties, layouts and different types of events.

Uploaded by

usamayaseen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 51

1

Chapter 12 – Graphical User Interface


Concepts: Part 1
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

 2002 Prentice Hall. All rights reserved.


2

12.1 Introduction
Button Label Menu Bar TextBox Scrollbar

Fig. 12.1 Sample Internet Explorer window with GUI components.

 2002 Prentice Hall. All rights reserved.


3

12.1 Introduction

C o n tro l 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. The area also
can display information.
Button An area that triggers an event when clicked.
CheckBox A GUI control that is either selected or not selected.
ComboBox A drop-down list of items from which the user can make a selection,
by clicking an item in the list or by typing into the box, if permitted.
ListBox An area in which a list of items is displayed from which the user can
make a selection by clicking once on any element. Multiple elements
can be selected.
Panel A container in which components can be placed.
ScrollBar Allows the user to access a range of values that cannot normally fit in
its container.
Fig . 12.2 So m e b a sic G UI c o m p o n e n ts.

 2002 Prentice Hall. All rights reserved.


4

12.2 Windows Forms

Fig. 12.3 Components and controls for Windows Forms.

 2002 Prentice Hall. All rights reserved.


5

12.2 Windows Forms


Form Pro p e rtie s a n d De sc rip tio n / De le g a te a nd Eve nt Arg u m e nts
Eve n ts
Common Properties
AcceptButton Which button will be clicked when Enter is pressed.
AutoScroll Whether scrollbars appear when needed (if data fills more than one
screen).
CancelButton Button that is clicked when the Escape key is pressed.
FormBorderStyle Border of the form (e.g., none, single, 3D, sizable).
Font Font of text displayed on the form, as well as the default font of
controls added to the form.
Text Text in the form’s title bar.
Common Methods
Close Closes 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 p ro p e rtie s a n d e ve n ts.
 2002 Prentice Hall. All rights reserved.
6

12.2 Event-Handling Model

calls Handler 1 for event E


calls
Object A raises event E Delegate for event E Handler 2 for event E

Handler 3 for event E

Fig. 12.5 Event-handling model using delegates.

 2002 Prentice Hall. All rights reserved.


7

12.3.1 Basic Event Handling

Events icon
List of events
supported by
control

Selected event
Current even
handler (none)

Event
description

Fig. 12.6 Events section of the Properties window.

 2002 Prentice Hall. All rights reserved.


8
1 // Fig. 12.7: SimpleEventExample.cs Outline
2 // Using Visual Studio .NET to create event handlers.
3
4 using System;
5 using System.Drawing; SimpleEventExamp
6 using System.Collections; le.cs
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 // program that shows a simple event handler
12 public class MyForm : System.Windows.Forms.Form
13 {
14 private System.ComponentModel.Container components = null;
15
16 // Visual Studio .NET generated code
17
18 [STAThread]
19 static void Main()
20 {
21 Application.Run( new MyForm() );
22 }
23
24 // Visual Studio .NET creates an empty handler,
25 // we write definition: show message box when form clicked
26 private void MyForm_Click( object sender, System.EventArgs e )
27 {
28 MessageBox.Show( "Form was pressed" );
29 }
30
31 } // end class MyForm

 2002 Prentice Hall.


All rights reserved.
9
Outline

SimpleEventExamp
le.cs
Program Output

 2002 Prentice Hall.


All rights reserved.
10

12.3.1 Basic Event Handling

Class name List of events

Fig. 12.8 List of Form events.

 2002 Prentice Hall. All rights reserved.


11

12.3.1 Basic Event Handling

Event name

Event delegate Event argument class

Fig. 12.9 Details of Click event.

 2002 Prentice Hall. All rights reserved.


12

12.4 Control Properties and Layout


C la ss Control De sc rip tio n
Pro p e rtie s a n d Me th o d s
Common Properties

BackColor Background color of the control.


BackgroundImage Background image of the control.
Enabled Whether the control is enabled (i.e., if the user can interact with it). A
disabled control will still be displayed, but “grayed-out”—portions of
the control will become gray.
Focused Whether a control has focus. (The control that is currently being used
in some way.)
Font Font used to display control’s Text.
ForeColor Foreground color of the control. This is usually the color used to
display the control’s Text property.
TabIndex Tab order of the control. When the Tab key is pressed, the focus is
moved to controls in increasing tab order. This order can be set by the
programmer.
TabStop If true, user can use the Tab key to select the control.
Text Text associated with the control. The location and appearance varies
with the type of control.
TextAlign The alignment of the text on the control. One of three horizontal
positions (left, center or right) and one of three vertical positions (top,
middle or bottom).
Visible 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 C la ss Control p ro p e rtie s a n d m e th o d s.

 2002 Prentice Hall. All rights reserved.


13

12.4 Control Properties and Layout

Before resize After resize

Constant distance to
left and top sides

Fig. 12.11 Anchoring demonstration.

 2002 Prentice Hall. All rights reserved.


14

12.4 Control Properties and Layout

Darkened bar indicates


to which wall control
is anchored

Click down-arrow
in Anchor property
to display
anchoring window

Fig. 12.12 Manipulating the Anchor property of a control.

 2002 Prentice Hall. All rights reserved.


15

12.4 Control Properties and Layout

Control expands along


top portion of the form

Fig. 12.13 Docking demonstration.

 2002 Prentice Hall. All rights reserved.


16

12.4 Control Properties and Layout

C o m m o n La yo ut De sc rip tio n
Pro p e rtie s
Common Properties
Anchor Side of parent container at which to anchor control—values can be
combined, such as Top, Left.
Dock Side of parent container to dock control—values cannot be combined.
DockPadding (for Sets the dock spacing for controls inside the container. Default is zero,
containers) so controls appear flush against the side of the container.
Location Location of the upper-left corner of the control, relative to it’s
container.
Size Size of the control. Takes a Size structure, which has properties
Height and Width.
MinimumSize, The minimum and maximum size of the form.
MaximumSize (for
Windows Forms)
Fig . 12.14 C la ss Control la yo u t p ro p e rtie s.

 2002 Prentice Hall. All rights reserved.


17

12.5 Labels TextBoxes and Buttons

Label De sc rip tio n / De le g a te a n d Eve n t Arg u m e n ts


Pro p e rtie s
Common
Properties
Font The font used by the text on the Label.
Text The text to appear on the Label.
TextAlign The alignment of the Label’s text on the control. One of three horizontal positions
(left, center or right) and one of three vertical positions (top, middle or
bottom).
Fig . 12.15 Label p ro p e rtie s.

 2002 Prentice Hall. All rights reserved.


18

12.5 Labels TextBoxes and Buttons

TextBox Pro p e rtie s De sc rip tio n / De le g a te a n d Eve n t Arg u m e n ts


a n d Eve n ts
Common Properties

AcceptsReturn If true, pressing Enter creates a new line if textbox spans multiple
lines. If false, pressing Enter clicks the default button of the form.
Multiline If true, textbox can span multiple lines. Default is false.
PasswordChar Single character to display instead of typed text, making the
TextBox a password box. If no character is specified, Textbox
displays the typed text.
ReadOnly If true, TextBox has a gray background and its text cannot be
edited. Default is false.
ScrollBars For multiline textboxes, indicates which scrollbars appear (none,
horizontal, vertical or both).
Text The text to be displayed in the text box.
Common Events (Delegate EventHandler, event arguments EventArgs)
TextChanged Raised when text changes in TextBox (the user added or deleted
characters). Default event when this control is double clicked in the
designer.
Fig . 12.16 TextBox p ro p e rtie s a n d e ve n ts.

 2002 Prentice Hall. All rights reserved.


19

12.5 Labels TextBoxes and Buttons

Button p ro p e rtie s a nd De sc rip tio n / De le g a te a nd Eve n t Arg u m e nts


e ve nts
Common Properties
Text Text displayed on the Button face.
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.17 Button p ro p e rtie s a nd e ve n ts.

 2002 Prentice Hall. All rights reserved.


20
1 // Fig. 12.18: LabelTextBoxButtonTest.cs Outline
2 // Using a Textbox, Label and Button to display
3 // the hidden text in a password box.
4
5 using System; LabelTextBoxButt
6 using System.Drawing; onTest.cs
7 using System.Collections;
8 using System.ComponentModel;
9 using System.Windows.Forms;
10 using System.Data;
11
12 // namespace contains our form to display hidden text
13 namespace LabelTextBoxButtonTest
14 {
15 /// <summary>
16 /// form that creates a password textbox and
17 /// a label to display textbox contents
18 /// </summary>
19 public class LabelTextBoxButtonTest :
20 System.Windows.Forms.Form
21 {
22 private System.Windows.Forms.Button displayPasswordButton;
23 private System.Windows.Forms.Label displayPasswordLabel;
24 private System.Windows.Forms.TextBox inputPasswordTextBox;
25
26 /// <summary>
27 /// Required designer variable.
28 /// </summary>
29 private System.ComponentModel.Container components = null;
30
31 // default contructor
32 public LabelTextBoxButtonTest()
33 {
34 InitializeComponent();
35 }
 2002 Prentice Hall.
All rights reserved.
21
36 Outline
37 /// <summary>
38 /// Clean up any resources being used.
39 /// </summary>
40 protected override void Dispose( bool disposing ) LabelTextBoxButt
41 { onTest.cs
42 if ( disposing )
43 {
44 if ( components != null )
45 {
46 components.Dispose();
47 }
48 }
49
50 base.Dispose( disposing );
51 }
52
53 #region Windows Form Designer generated code
54 /// <summary>
55 /// Required method for Designer support - do not modify
56 /// the contents of this method with the code editor.
57 /// </summary>
58 private void InitializeComponent()
59 {
60 this.displayPasswordButton =
61 new System.Windows.Forms.Button();
62 this.inputPasswordTextBox =
63 new System.Windows.Forms.TextBox();
64 this.displayPasswordLabel =
65 new System.Windows.Forms.Label();
66 this.SuspendLayout();
67

 2002 Prentice Hall.


All rights reserved.
22
68 // Outline
69 // displayPasswordButton
70 //
71 this.displayPasswordButton.Location =
72 new System.Drawing.Point( 96, 96 ); LabelTextBoxButt
73 this.displayPasswordButton.Name = onTest.cs
74 "displayPasswordButton";
75 this.displayPasswordButton.TabIndex = 1;
76 this.displayPasswordButton.Text = "Show Me";
77 this.displayPasswordButton.Click +=
78 new System.EventHandler(
79 this.displayPasswordButton_Click );
80
81 //
82 // inputPasswordTextBox
83 //
84 this.inputPasswordTextBox.Location =
85 new System.Drawing.Point( 16, 16 );
86 this.inputPasswordTextBox.Name =
87 "inputPasswordTextBox";
88 this.inputPasswordTextBox.PasswordChar = '*';
89 this.inputPasswordTextBox.Size =
90 new System.Drawing.Size( 264, 20 );
91 this.inputPasswordTextBox.TabIndex = 0;
92 this.inputPasswordTextBox.Text = "";
93
94 //
95 // displayPasswordLabel
96 //
97 this.displayPasswordLabel.BorderStyle =
98 System.Windows.Forms.BorderStyle.Fixed3D;
99 this.displayPasswordLabel.Location =
100 new System.Drawing.Point( 16, 48 );
101 this.displayPasswordLabel.Name =
102 "displayPasswordLabel";
 2002 Prentice Hall.
All rights reserved.
23
103 this.displayPasswordLabel.Size = Outline
104 new System.Drawing.Size( 264, 23 );
105 this.displayPasswordLabel.TabIndex = 2;
106
107 // LabelTextBoxButt
108 // LabelTextBoxButtonTest onTest.cs
109 //
110 this.AutoScaleBaseSize =
111 new System.Drawing.Size( 5, 13 );
112 this.ClientSize =
113 new System.Drawing.Size( 292, 133 );
114 this.Controls.AddRange(
115 new System.Windows.Forms.Control[] {
116 this.displayPasswordLabel,
117 this.inputPasswordTextBox,
118 this.displayPasswordButton});
119 this.Name = "LabelTextBoxButtonTest";
120 this.Text = "LabelTextBoxButtonTest";
121 this.ResumeLayout( false );
122
123 } // end method InitializeComponent
124
125 // end collapsible region started on line 53
126 #endregion
127
128 /// <summary>
129 /// The main entry point for the application.
130 /// </summary>
131 [STAThread]
132 static void Main()
133 {
134 Application.Run( new LabelTextBoxButtonTest() );
135 }
136
 2002 Prentice Hall.
All rights reserved.
24
137 // display user input on label Outline
138 protected void displayPasswordButton_Click(
139 object sender, System.EventArgs e )
140 {
141 // text has not changed LabelTextBoxButt
142 displayPasswordLabel.Text = onTest.cs
143 inputPasswordTextBox.Text;
144 }
145
146 } // end class LabelTextBoxButtonTest
147
148 } // end namespace LabelTextBoxButtonTest

Program Output

 2002 Prentice Hall.


All rights reserved.
25

12.6 GroupBoxes and Panels

GroupBox Pro p e rtie s De sc rip tio n


Common Properties

Controls The controls that the GroupBox contains.


Text Text displayed on the top portion of the GroupBox (its caption).
Fig . 12.19 GroupBox p ro p e rtie s.

 2002 Prentice Hall. All rights reserved.


26

12.6 GroupBoxes and Panels

Panel Pro p e rtie s De sc rip tio n


Common Properties

AutoScroll Whether scrollbars appear when the Panel is too small to hold its
controls. Default is false.
BorderStyle Border of the Panel (default None; other options are Fixed3D and
FixedSingle).
Controls The controls that the Panel contains.
Fig . 12.20 Panel p ro p e rtie s.

 2002 Prentice Hall. All rights reserved.


27

12.6 GroupBoxes and Panels

Controls inside
panel panel

panel
scrollbars

Fig. 12.21 Creating a Panel with scrollbars.

 2002 Prentice Hall. All rights reserved.


28
1 // Fig. 12.22: GroupBoxPanelExample.cs Outline
2 // Using GroupBoxes and Panels to hold buttons.
3
4 using System;
5 using System.Drawing; GroupBoxPanelExa
6 using System.Collections; mple.cs
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 /// form to display a groupbox versus a panel
12 public class GroupBoxPanelExample : System.Windows.Forms.Form
13 {
14 private System.Windows.Forms.Button hiButton;
15 private System.Windows.Forms.Button byeButton;
16 private System.Windows.Forms.Button leftButton;
17 private System.Windows.Forms.Button rightButton;
18
19 private System.Windows.Forms.GroupBox mainGroupBox;
20 private System.Windows.Forms.Label messageLabel;
21 private System.Windows.Forms.Panel mainPanel;
22
23 private System.ComponentModel.Container components = null;
24
25 // Visual Studio .NET-generated Dispose method
26
27 [STAThread]
28 static void Main()
29 {
30 Application.Run( new GroupBoxPanelExample() );
31 }
32

 2002 Prentice Hall.


All rights reserved.
29
33 // event handlers to change messageLabel Outline
34
35 // event handler for hi button
36 private void hiButton_Click(
37 object sender, System.EventArgs e ) GroupBoxPanelExa
38 { mple.cs
39 messageLabel.Text= "Hi pressed";
40 }
41
42 // event handler for bye button
43 private void byeButton_Click(
44 object sender, System.EventArgs e )
45 {
46 messageLabel.Text = "Bye pressed";
47 }
48
49 // event handler for far left button
50 private void leftButton_Click(
51 object sender, System.EventArgs e )
52 {
53 messageLabel.Text = "Far left pressed";
54 }
55
56 // event handler for far right button
57 private void rightButton_Click(
58 object sender, System.EventArgs e )
59 {
60 messageLabel.Text = "Far right pressed";
61 }
62
63 } // end class GroupBoxPanelExample

 2002 Prentice Hall.


All rights reserved.
30
Outline

GroupBoxPanelExa
mple.cs
Program Output

 2002 Prentice Hall.


All rights reserved.
31

12.7 CheckBoxes and RadioButtons

CheckBox e ve n ts a n d De sc rip tio n / De le g a te a nd Eve n t Arg u m e nts


p ro p e rtie s
Common Properties

Checked Whether or not the CheckBox has been checked.


CheckState Whether the Checkbox is checked (contains a black checkmark) or
unchecked (blank). An enumeration with values Checked,
Unchecked or Indeterminate.
Text 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.
Default event when this control is double clicked in the designer.
CheckStateChanged Raised when the CheckState property changes.

Fig . 12.23 CheckBox p ro p e rtie s a n d e ve n ts.

 2002 Prentice Hall. All rights reserved.


32
1 // Fig. 12.24: CheckBoxTest.cs Outline
2 // Using CheckBoxes to toggle italic and bold styles.
3
4 using System;
5 using System.Drawing; CheckBoxTest.cs
6 using System.Collections;
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 /// form contains checkboxes to allow
12 /// the user to modify sample text
13 public class CheckBoxTest : System.Windows.Forms.Form
14 {
15 private System.Windows.Forms.CheckBox boldCheckBox;
16 private System.Windows.Forms.CheckBox italicCheckBox;
17
18 private System.Windows.Forms.Label outputLabel;
19
20 private System.ComponentModel.Container components = null;
21
22 // Visual Studio .NET-generated Dispose method
23
24 /// The main entry point for the application.
25 [STAThread]
26 static void Main()
27 {
28 Application.Run( new CheckBoxTest() );
29 }
30

 2002 Prentice Hall.


All rights reserved.
33
31 // make text bold if not bold, Outline
32 // if already bold make not bold
33 private void boldCheckBox_CheckedChanged(
34 object sender, System.EventArgs e )
35 { CheckBoxTest.cs
36 outputLabel.Font =
37 new Font( outputLabel.Font.Name,
38 outputLabel.Font.Size,
39 outputLabel.Font.Style ^ FontStyle.Bold );
40 }
41
42 // make text italic if not italic,
43 // if already italic make not italic
44 private void italicCheckBox_CheckedChanged(
45 object sender, System.EventArgs e )
46 {
47 outputLabel.Font =
48 new Font( outputLabel.Font.Name,
49 outputLabel.Font.Size,
50 outputLabel.Font.Style ^ FontStyle.Italic );
51 }
52
53 } // end class CheckBoxTest

 2002 Prentice Hall.


All rights reserved.
34
Outline

CheckBoxTest.cs
Program Output

 2002 Prentice Hall.


All rights reserved.
35

12.7 CheckBoxes and RadioButtons

RadioButton De sc rip tio n / De le g a te a nd Eve n t Arg u m e nts


p ro p e rtie s a nd e ve n ts
Common Properties

Checked Whether the RadioButton is checked.


Text 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.
Default event when this control is double clicked in the designer.
Fig . 12.25 RadioButton p ro p e rtie s a nd e ve nts.

 2002 Prentice Hall. All rights reserved.


36
1 // Fig. 12.26: RadioButtonsTest.cs Outline
2 // Using RadioButtons to set message window options.
3
4 using System;
5 using System.Drawing; RadioButtonsTest
6 using System.Collections; .cs
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 /// form contains several radio buttons--user chooses one
12 /// from each group to create a custom MessageBox
13 public class RadioButtonsTest : System.Windows.Forms.Form
14 {
15 private System.Windows.Forms.Label promptLabel;
16 private System.Windows.Forms.Label displayLabel;
17 private System.Windows.Forms.Button displayButton;
18
19 private System.Windows.Forms.RadioButton questionButton;
20 private System.Windows.Forms.RadioButton informationButton;
21 private System.Windows.Forms.RadioButton exclamationButton;
22 private System.Windows.Forms.RadioButton errorButton;
23 private System.Windows.Forms.RadioButton retryCancelButton;
24 private System.Windows.Forms.RadioButton yesNoButton;
25 private System.Windows.Forms.RadioButton yesNoCancelButton;
26 private System.Windows.Forms.RadioButton okCancelButton;
27 private System.Windows.Forms.RadioButton okButton;
28 private System.Windows.Forms.RadioButton
29 abortRetryIgnoreButton;
30
31 private System.Windows.Forms.GroupBox groupBox2;
32 private System.Windows.Forms.GroupBox groupBox1;
33
34 private MessageBoxIcon iconType = MessageBoxIcon.Error;
 2002 Prentice Hall.
All rights reserved.
37
35 private MessageBoxButtons buttonType = Outline
36 MessageBoxButtons.OK;
37
38 /// The main entry point for the application.
39 [STAThread] RadioButtonsTest
40 static void Main() .cs
41 {
42 Application.Run( new RadioButtonsTest() );
43 }
44
45 // change button based on option chosen by sender
46 private void buttonType_CheckedChanged(
47 object sender, System.EventArgs e )
48 {
49 if ( sender == okButton ) // display OK button
50 buttonType = MessageBoxButtons.OK;
51
52 // display OK and Cancel buttons
53 else if ( sender == okCancelButton )
54 buttonType = MessageBoxButtons.OKCancel;
55
56 // display Abort, Retry and Ignore buttons
57 else if ( sender == abortRetryIgnoreButton )
58 buttonType = MessageBoxButtons.AbortRetryIgnore;
59
60 // display Yes, No and Cancel buttons
61 else if ( sender == yesNoCancelButton )
62 buttonType = MessageBoxButtons.YesNoCancel;
63
64 // display Yes and No buttons
65 else if ( sender == yesNoButton )
66 buttonType = MessageBoxButtons.YesNo;
67
68 // only one option left--display
69 // Retry and Cancel buttons
 2002 Prentice Hall.
All rights reserved.
38
70 else Outline
71 buttonType = MessageBoxButtons.RetryCancel;
72
73 } // end method buttonType_CheckedChanged
74 RadioButtonsTest
75 // change icon based on option chosen by sender .cs
76 private void iconType_CheckedChanged(
77 object sender, System.EventArgs e )
78 {
79 if ( sender == errorButton ) // display error icon
80 iconType = MessageBoxIcon.Error;
81
82 // display exclamation point
83 else if ( sender == exclamationButton )
84 iconType = MessageBoxIcon.Exclamation;
85
86 // display information icon
87 else if ( sender == informationButton )
88 iconType = MessageBoxIcon.Information;
89
90 else // only one option left--display question mark
91 iconType = MessageBoxIcon.Question;
92
93 } // end method iconType_CheckedChanged
94
95 // display MessageBox and button user pressed
96 protected void displayButton_Click(
97 object sender, System.EventArgs e )
98 {
99 DialogResult result =
100 MessageBox.Show( "This is Your Custom MessageBox.",
101 "Custom MessageBox", buttonType, iconType, 0, 0 );
102
103 // check for dialog result and display it in label
104 switch ( result )
 2002 Prentice Hall.
All rights reserved.
39
105 { Outline
106 case DialogResult.OK:
107 displayLabel.Text = "OK was pressed.";
108 break;
109 RadioButtonsTest
110 case DialogResult.Cancel: .cs
111 displayLabel.Text = "Cancel was pressed.";
112 break;
113
114 case DialogResult.Abort:
115 displayLabel.Text = "Abort was pressed.";
116 break;
117
118 case DialogResult.Retry:
119 displayLabel.Text = "Retry was pressed.";
120 break;
121
122 case DialogResult.Ignore:
123 displayLabel.Text = "Ignore was pressed.";
124 break;
125
126 case DialogResult.Yes:
127 displayLabel.Text = "Yes was pressed.";
128 break;
129
130 case DialogResult.No:
131 displayLabel.Text = "No was pressed.";
132 break;
133
134 } // end switch
135
136 } // end method displayButton_Click
137
138 } // end class RadioButtonsTest
 2002 Prentice Hall.
All rights reserved.
40
Outline

RadioButtonsTest
.cs
Program Output

Exclamation icon type Error icon type

OKCancel button type OK button type  2002 Prentice Hall.


All rights reserved.
41
Outline

RadioButtonsTest
Information icon type Question icon type .cs
Program Output

AbortRetryIgnore button type YesNoCancel button type

YesNo button type RetryCancel button type

 2002 Prentice Hall.


All rights reserved.
42

12.8 PictureBoxes

PictureBox De sc rip tio n / De le g a te a nd Eve n t Arg u m e nts


p ro p e rtie s a nd e ve n ts
Common Properties

Image Image to display in the PictureBox.


SizeMode Enumeration that controls image sizing and positioning. Values
Normal (default), StretchImage, AutoSize and
CenterImage. Normal puts image in top-left corner of
PictureBox and CenterImage puts image in middle (both cut
off image if 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.27 PictureBox p ro p e rtie s a nd e ve n ts.

 2002 Prentice Hall. All rights reserved.


43
1 // Fig. 12.28: PictureBoxTest.cs Outline
2 // Using a PictureBox to display images.
3
4 using System;
5 using System.Drawing; PictureBoxTest.c
6 using System.Collections; s
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10 using System.IO;
11
12 /// form to display different images when clicked
13 public class PictureBoxTest : System.Windows.Forms.Form
14 {
15 private System.Windows.Forms.PictureBox imagePictureBox;
16 private System.Windows.Forms.Label promptLabel;
17
18 private int imageNum = -1;
19
20 /// The main entry point for the application.
21 [STAThread]
22 static void Main()
23 {
24 Application.Run( new PictureBoxTest() );
25 }
26
27 // change image whenever PictureBox clicked
28 private void imagePictureBox_Click(
29 object sender, System.EventArgs e )
30 {
31 imageNum = ( imageNum + 1 ) % 3; // imageNum from 0 to 2
32

 2002 Prentice Hall.


All rights reserved.
44
33 // create Image object from file, display on PictureBox Outline
34 imagePictureBox.Image = Image.FromFile(
35 Directory.GetCurrentDirectory() + "\\images\\image" +
36 imageNum + ".bmp" );
37 } PictureBoxTest.c
38 s
39 } // end class PictureBoxTest

Program Output

 2002 Prentice Hall.


All rights reserved.
45

12.9 Mouse Event Handling

Mo u se Eve n ts, De le g a te s
a n d Eve n t Arg u m e n ts
Mouse Events (Delegate
EventHandler, event
arguments EventArgs)
MouseEnter Raised if the mouse cursor enters the area of the control.
MouseLeave Raised if the mouse cursor leaves the area of the control.
Mouse Events (Delegate
MouseEventHandler,
event arguments
MouseEventArgs)
MouseDown Raised if the mouse button is pressed while its cursor is over the area of the
control.
MouseHover Raised if the mouse cursor hovers over the area of the control.
MouseMove Raised if the mouse cursor is moved while in the area of the control.
MouseUp Raised if the mouse button is released when the cursor is over the area of the
control.
Class MouseEventArgs
Properties
Button Mouse button that was pressed (left, right, middle or none).
Clicks The number of times the mouse button was clicked.
X The x-coordinate of the event, relative to the component.
Y The y-coordinate of the event, relative to the component.
Fig . 12.29 Mo u se e ve n ts, d e le g a te s a n d e ve n t a rg u m e n ts.

 2002 Prentice Hall. All rights reserved.


46
1 // Fig 12.30: Painter.cs Outline
2 // Using the mouse to draw on a form.
3
4 using System;
5 using System.Drawing; Painter.cs
6 using System.Collections;
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 /// creates a form as a drawing surface
12 public class Painter : System.Windows.Forms.Form
13 {
14 bool shouldPaint = false; // whether to paint
15
16 /// The main entry point for the application.
17 [STAThread]
18 static void Main()
19 {
20 Application.Run( new Painter() );
21 }
22
23 // should paint after mouse button has been pressed
24 private void Painter_MouseDown(
25 object sender, System.Windows.Forms.MouseEventArgs e )
26 {
27 shouldPaint = true;
28 }
29
30 // stop painting when mouse button released
31 private void Painter_MouseUp(
32 object sender, System.Windows.Forms.MouseEventArgs e )
33 {
34 shouldPaint = false;
35 }
 2002 Prentice Hall.
All rights reserved.
47
36 Outline
37 // draw circle whenever mouse button
38 // moves (and mouse is down)
39 protected void Painter_MouseMove(
40 object sender, System.Windows.Forms.MouseEventArgs e ) Painter.cs
41 {
42 if ( shouldPaint )
43 {
44 Graphics graphics = CreateGraphics();
45 graphics.FillEllipse(
46 new SolidBrush( Color.BlueViolet ),
47 e.X, e.Y, 4, 4 );
48 }
49
50 } // end Painter_MouseMove
51
52 } // end class Painter

Program Output

 2002 Prentice Hall.


All rights reserved.
48

12.10 Keyboard Event Handling


Ke yb o a rd Eve n ts, De le g a te s a n d
Eve n t Arg u m e n ts
Key Events (Delegate
KeyEventHandler, event arguments
KeyEventArgs)
KeyDown Raised when key is initially pushed down.
KeyUp Raised when key is released.
Key Events (Delegate
KeyPressEventHandler, event
arguments KeyPressEventArgs)
KeyPress Raised when key is pressed. Occurs repeatedly while
key is held down, at a rate specified by the operating
system.
Class KeyPressEventArgs
Properties
KeyChar Returns the ASCII character for the key pressed.
Handled Whether or not the KeyPress event was handled.
Class KeyEventArgs Properties
Alt Indicates whether the Alt key was pressed.
Control Indicates whether the Control key was pressed.
Shift Indicates whether the Shift key was pressed.
Handled Whether the event was handled.
KeyCode Returns the key code for the key, as a Keys
enumeration. This does not include modifier key
information. Used to test for a specific key.
KeyData Returns the key code as a Keys enumeration,
combined with modifier information. Used to
determine all information about the key pressed.
KeyValue Returns the key code as an int, rather than as a Keys
enumeration. Used to obtain a numeric representation
of the key pressed.
Modifiers Returns a Keys enumeration for any modifier keys
pressed (Alt, Control and Shift). Used to determine
modifier key information only.
Fig . 12.31 Ke yb o a rd e ve n ts, d e le g a te s a n d e ve n t a rg u m e n ts.

 2002 Prentice Hall. All rights reserved.


49
1 // Fig. 12.32: KeyDemo.cs Outline
2 // Displaying information about the key the user pressed.
3
4 using System;
5 using System.Drawing; KeyDemo.cs
6 using System.Collections;
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10
11 // form to display key press
12 // information--contains two labels
13 public class KeyDemo : System.Windows.Forms.Form
14 {
15 private System.Windows.Forms.Label charLabel;
16 private System.Windows.Forms.Label keyInfoLabel;
17
18 private System.ComponentModel.Container components = null;
19
20 /// The main entry point for the application.
21 [STAThread]
22 static void Main()
23 {
24 Application.Run( new KeyDemo() );
25 }
26
27 // display the character pressed using key char
28 protected void KeyDemo_KeyPress(
29 object sender, System.Windows.Forms.KeyPressEventArgs e )
30 {
31 charLabel.Text = "Key pressed: " + e.KeyChar;
32 }
33
 2002 Prentice Hall.
All rights reserved.
50
34 // display modifier keys, key code, key data and key value Outline
35 private void KeyDemo_KeyDown(
36 object sender, System.Windows.Forms.KeyEventArgs e )
37 {
38 keyInfoLabel.Text = KeyDemo.cs
39 "Alt: " + ( e.Alt ? "Yes" : "No") + '\n' +
40 "Shift: " + ( e.Shift ? "Yes" : "No" ) + '\n' +
41 "Ctrl: " + ( e.Control ? "Yes" : "No" ) + '\n' +
42 "KeyCode: " + e.KeyCode + '\n' +
43 "KeyData: " + e.KeyData + '\n' +
44 "KeyValue: " + e.KeyValue;
45 }
46
47 // clear labels when key released
48 private void KeyDemo_KeyUp(
49 object sender, System.Windows.Forms.KeyEventArgs e )
50 {
51 keyInfoLabel.Text = "";
52 charLabel.Text = "";
53 }

 2002 Prentice Hall.


All rights reserved.
51
Outline

KeyDemo.cs
Program Output

 2002 Prentice Hall.


All rights reserved.

You might also like