Windows
Forms Applications using C#.NET
- It is a GUI (Graphical User Interface) application that runs on Windows o/s
- A Windows Forms Application (Windows Application) is a collection of forms.
- Ex: Notepad, WordPad, Paint, MS Word etc.
·
It is a graphics container, using which
we can draw some graphics + we can place
some graphical controls such as labels, text boxes, buttons etc.
Steps
for creating a form:
2) File -
New - Project
3) Visual
C# - Windows Forms Application.
4) Project
Name: WinApp1
5)
Location = D:\
6) Ok
Properties
of Form:
These are
used change visual appearance of the form
1.
Text:
used to change title of the form.
Ex:
Text = Welcome
2.
BackColor:
used to specify background color of the form.
Ex: BackColor = HotPink
3.
Size:
used to specify width and height of the form.
Ex: Size
Width = 500 (pixels)
Height = 200 (pixels)
4.
BackgroundImage:
it
is used to applya background image for the form.
Ex: BackgroundImage = sample.jpg
5.
BackgroundImageLayout:
it
is used to specify tile / stretch of the background image.
Ex:
BackgroundImageLayout = Tile
6.
Cursor:
it is used to specify mouse pointer while working in the form.
Ex:
Cursor = Hand
7.
Icon:
it is used to specify icon file path.
Ex:
Icon = sample.ico
8.
ShowIcon:
it is used to show / hide the icon of the form.
Ex:
ShowIcon = false
9.
ShowInTaskbar: it is used to show / hide the form title in
the windows taskbar.
Ex: ShowInTaskbar = false
10. MinimizeBox: it is used to show / hide the 'minimize box'
of the form.
Ex:
MinimizeBox = false
11. MaximizeBox: it is used to show / hide the 'maximize box'
of the form.
Ex: MaximizeBox = false
Note:
if you specify 'MinimizeBox = false' and also 'MaximizeBox = false' at-a-time,
both will be hidden.
12. HelpButton: it is used to show / hide the 'help button'
(?) on the form.
rule:
MinimizeBox = false and MaximizeBox = false
13. Opacity: it is used to make the form transparent.
Ex: Opacity = 0% to 100%
14. ControlBox: it is used to show / hide the control box
(minimize box + maximize box + close box) for the form.
Ex: ControlBox = false
15. AutoScroll:
it is used to show / hide the scroll bars on the form. this is useful when
there some controls on the foirm.
Ex:
AutoScroll = true
16. FormBorderStyle:
it is used to specify whether the form is re-sizable at run time, or not.
Options: None / FixedSingle / Fixed3D / Sizable /
FixedToolWindow / SizableToolWindow
17. WindowState:
it is used to identify / change current window status of the form, whether it
is minimized / maximized.
Options: Normal / Minimized / Maximized
Event
Driven Programming
·
In GUI applications, code execution flow
is different from 'console apps'.
·
So GUI apps code execution is called as
'Event Driven Programming'.
·
Event:
is an action that is performed by user at run time.
·
Ex:
When a door bell is pressed, sound is played.
Here 'Press'
is the event.
·
An event will its associated function,
in which we can write any code.
Form
events:
These are
the events (actions), done by the user, based on the form.
1.
Load: it executes when the form runs (form loads
into memory).
2.
Click: it executes when the user clicks anywhere on
the form.
3.
DoubleClick: it executes when the user double clicks the
form.
4.
Move: it executes when the user moves the form at
run time.
5.
Resize: it executes when the resizes the form at run
time.
6.
KeyPress: it exeutes on pressing any key on the
keyboard.
7.
Scroll: it executes on scrolling the form at run
time.
8.
FormClosing: it executes on closing the form.
Ex:-
Develop
a c# win app, to demonstrate the form events.
Steps:
·
Create a new c# win app.
Project
Name = FormEventsDemo
·
It shows 'Form1' automatically.
·
Go to properties window.
(Right
click on the form and say 'Properties')
·
Properties of Form1:
Name
= Form1
BackColor
= SkyBlue
·
Click on 'Events' icon in the properties
window.
·
Double click on 'Load' event:
private void MyForm_Load(object sender, EventArgs e)
{
MessageBox.Show("Welcome");
}
·
Double click on 'Click' event:
private void MyForm_Click(object sender, EventArgs e)
{
MessageBox.Show("You clicked the form at " +
DateTime.Now.ToString());
}
·
Double click on 'FormClosing' event:
private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
MessageBox.Show("Good bye");
}
Changing
form properties dynamically at run time:
Ex:
this.Text = "hello";
These are
used to change properties of the form, based on the user's requirement, through
code.
·
Changing 'Text' property:
Syntax:
this.Text = "some string here";
Ex
app: Show good morning / good afternoon
/ Good evening message in the form's title bar, based on system time.
Note:
When we double click on the form at design time, it generates code for 'Load'
event. Bcoz, 'Load' is the default event
of the form.
·
Changing 'BackColor' property
Syn: this.BackColor = Color.yourcolorname;
Ex App:
Develop a win app, which changes to darkgreen color when you double
click it.
·
Changing 'BackgroundImage' property at
run time:
Syn:
this.BackgroundImage = Image.FromFile("file path here");
Ex App:
show a background image, when the user press any key.
Working
with WinForms Controls:-
·
A control is a GUI component, which can
be displayed on a windows form.
·
Ex: Label, Button, TextBox etc.
·
C# recognizes each as a 'class'.
·
All the control classes are present
under a namespace called 'System.Windows.Forms'.
System.Windows.Forms
- Label
- Button
- TextBox
·
When you drag and drop a control from
the Toolbox into the form, system automatically creates an object for the
corresponding class.
Label
·
It is used to show a fixed message on
the screen.
·
It is useful for showing:
a)
Titles
b)
Prompting text
c)
Description
Properties of Label
·
Name:
Used to specify programmatic name of the label.
o
Ex: Name = Label1
·
Text:
Used to specify actual text of the label.
o
Ex: Text = Hello
·
BackColor:
Used to specify background color of the label.
o
Ex: BackColor: Green
·
ForeColor:
Used to specify foreground color (text color) of the label.
o
Ex: ForeColor = Yellow
·
Font:
Used to specify font settings of label such as font name, bold, italic,
underline etc.
o
Ex: Arial, 30
·
Location:
Used to specify position of the label on the foirm. It specifies X and Y
co-ordinates.
o
Ex: Location
-
X = 300
-
Y = 200
·
AutoSize:
Used to enable / disable automatic sizing for the label.
o
Ex: AutoSize = false
Events
of Label
·
Click:
Executes when you click on the label.
·
DoubleClick:
Executes when you double click on the label.
·
MouseEnter:
executes when you place mouse pointer over the label.
·
MouseLeave:
executes when you move the mouse pointer outside the label.
Ex:-
Develop
a c# win forms app, to show system date & time, when you click it.
Steps:
·
Create a new c# win form app.
o
Project Name = LabelDemo
·
Place 3 labels from tool box into the
form.
·
Properties of Label1:
Ø Font
= Berlin Sans FB Demi, 30
Ø Text
= Welcome
Ø ForeColor
= DarkRed
·
Properties of Label2:
Ø Font
= Candara, 20
Ø BackColor
= DarkGreen
Ø ForeColor
= Yellow
·
Properties of Label3:
Ø Font
= Trebuchet MS, 14
Ø AutoSize
= false
Ø Text
= Click label2 to get system date and time
·
The form looks as shown below.
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
LabelDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label2_Click(object sender, EventArgs e)
{
label2.Text = DateTime.Now.ToString();
}
}
}
Button:-
·
It is used to display a clickable
command button on the for the user, and also execute some code when the user
clicks it.
·
Ex: OK, Cancel etc.
Properties
of Button:
·
Name, Text, BackColor, ForeColor, Font,
Location, Size
·
Image:
used to specify an icon image in button.
·
ImageAlign:
specifies position of the image in the button.
·
TextAlign:
specifies position on the text in the button.
Events
of Button:
·
Click, MouseEnter, MouseLeave
Ex:-
Develop
a c# win app, which contains Save & Exit buttons.
Steps:
·
Create a new c# win app.
o
Project Name = ButtonDemo
·
It shows Form1 automatically.
·
Place two buttons.
·
Properties of Button1:
§ Text
= Save
§ Image
= save.png
§ ImageAlign
= MiddleLeft
§ TextAlign
= MiddleRight
·
Properties of Button2:
§ Text
= Exit
§ BackColor
= DarkRed
§ ForeColor
= Cyan
·
The form looks like this:
Code:-
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
ButtonDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Saved!");
}
private void button2_MouseEnter(object sender, EventArgs e)
{
button2.BackColor = Color.Cyan;
button2.ForeColor = Color.DarkRed;
}
private void button2_MouseLeave(object sender, EventArgs e)
{
button2.BackColor = Color.DarkRed;
button2.ForeColor = Color.Cyan;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close(); //closes the current working
form
}
}
}
PictureBox:-
·
It is used to show an image on the form
at desired place.
Properties
of PictureBox:
·
Name, Image, Size, Location
·
SizeMode
=
Center / Stretch etc.
Events of PictureBox:
·
Click, DoubleClick, MouseEnter,
MouseLeave
Ex:-
Develop
a win app, which shows an image, based on the selection.
Steps:
·
Create a new c# win forms app.
o
Name = PictureBoxDemo
·
Drag & drop 7 buttons, 1 PictureBox
on the form.
·
Properties of Button1:
o
Text = Small
·
Properties of Button2:
o
Text = Medium
·
Properties of Button3:
o
Text = Large
·
Properties of Button4:
o
Text = image 1
·
Properties of Button5:
o
Text = image 2
·
Properties of Button6:
o
Text = image 3
·
Properties of Button7:
o
Text = image 4
·
Properties of PictureBox1:
o
SizeMode = Zoom
o
Image = img1.jpg
·
Properties of Form1:
o
Text = Image Viewer
o
WindowState = Maximized
·
The form looks like this:
Code:-
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
PictureBoxDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code:
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Size = new Size(100, 100);
}
private void button2_Click(object sender, EventArgs e)
{
pictureBox1.Size = new Size(200, 200);
}
private void button3_Click(object sender, EventArgs e)
{
pictureBox1.Size = new Size(300, 300);
}
private void button4_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(@"E:\Harsha\Images\WallPapers\img1.jpg");
}
private void button5_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(@"E:\Harsha\Images\WallPapers\img2.jpg");
}
private void button6_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(@"E:\Harsha\Images\WallPapers\img3.jpg");
}
private void button7_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(@"E:\Harsha\Images\WallPapers\img4.jpg");
}
}
}
TextBox:-
·
It is used to accept a string value from
keyboard.
·
Types of text boxes:
a)
Single line text box (default)
b)
Multi line Text box
c)
Password text box
Properties
of TextBox:
·
Name, Text, BackColor, ForeColor, Size,
Location, Cursor
·
MaxLength:
Used to specify maximum no. of chars that can be typed in the text box.
o
Ex: MaxLength = 30
·
PasswordChar:
used to specify char of password.
o
Ex: PasswordChar = *
·
Multiline:
true / false
o
It is used to make the text as multi
line text box.
o
Ex:
MultiLine = true
·
ScrollBars
=
None / Horizontal / Vertical / Both
o
It is used to show scroll bars with in
the multi line text box.
·
ReadOnly
= true / false
o
It is used to make the text box,
read-only.
o
Ex:
ReadOnly = true
·
Enabled
= true / false
o
It is used to enable / disable the text
box. when you disable the text box, its events will not be executed.
o
Ex: Enabled = false
·
Visible
= true / false
o
It is used to show / hide the text box.
o
Ex: Visible = false
·
TabIndex: It is used to specify tab order of the text
boxes. you must provide an incremental for the tab index.
Events
of TextBox:
·
Click, DoubleClick, MouseEnter,
MouseLeave
·
TextChanged: it executes on changing text value at run
time. that means it executes on typing / erasing the text at run time.
·
KeyPress:
it executes on pressing any key on the board, while working in the text box.
using we can also block required chars not be typed in the text box.
Ex:-
Develop
a simple c# win form app, which shows 'hi' message to user.
Steps:
·
Create a new c# win app.
o
Project Name = TextBoxDemo1
·
Design the form as shown below.
Code:-
using
System;
using
System.Collections.Generic;
using System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
TextBoxDemo1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hi,
" + textBox1.Text + " " + textBox2.Text);
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ex:-
Develop
a registration form using c# win forms.
Steps:
·
Design a form as shown below.
·
Properties of TextBox1:
-
Name = txtStudentName
-
MaxLength = 30
·
Properties of TextBox2:
-
Name = txtAge
-
MaxLength = 2
·
Properties of TextBox3:
-
Name = txtPassword
-
MaxLength = 30
-
PasswordChar = *
·
Properties of TextBox4:
-
Name = txtRetypePassword
-
MaxLength = 30
-
PasswordChar = *
·
Properties of TextBox5:
-
Name = txtAddress
-
Multiline = true
-
Scrollbars = Vertical
·
Properties of TextBox6:
-
Name = txtQualification
·
Properties of TextBox7:
-
Name = txtCourseName
-
Text = .NET
-
ReadOnly = true
·
Properties of TextBox8:
-
Text = PEERS
-
Enabled = false
·
Design the form as shown below.
using
System;
using System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
TextBoxDemo2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//declare the variables
string StudentName;
int Age;
string Password, RetypePassword, Address, Qualification, CourseName,
InstituteName;
//read values from controls
StudentName = txtStudentName.Text;
Age = Convert.ToInt32(txtAge.Text);
Password
= txtPassword.Text;
RetypePassword
= txtRetypePassword.Text;
Address
= txtAddress.Text;
Qualification = txtQualification.Text;
CourseName = txtCourseName.Text;
InstituteName = txtInstituteName.Text;
//show message
string msg = "";
msg += "Your registration accepted!";
msg += "\nStudent Name: " + StudentName;
msg += "\nAge: " + Age;
msg += "\nPassword: " + Password;
msg += "\nRe-type Password: " + RetypePassword;
msg += "\nAddress: " + Address;
msg += "\nQualification: " + Qualification;
msg += "\nCourse Name: " + CourseName;
msg += "\nInstitute Name: " + InstituteName;
MessageBox.Show(msg);
}
}
}
Working
with "Auto Complete" feature in Text Box:
·
It shows the list of matching items,
while typing the text in the TextBox.
·
It is of two types:
a)
Auto-List from hard disk file system
b)
Auto-List from a user defined collection
a)
Auto-List from hard disk File system:
·
It shows list of file names & folder
names automatically.
·
Properties of TextBox:
Ø AutoCompleteMode
= Suggest
Ø AutoCompleteSource
= FileSystem
b)
Auto-List from a user defined collection:
·
It shows list of items when you type
atleast 1 char in the text box.
·
Properties of TextBox:
Ø AutoCompleteMode
= Suggest
Ø AutoCompleteSource
= CustomSource
Ø AutoCompleteCustomSource
= item 1
item 2
.....
Ex:-
Demo
on 'AutoComplete':
·
Create a new c# win app, and place 3
labels and 3 text boxes.
·
Properties of TextBox1:
-
AutoCompleteMode = Suggest
-
AutoCompleteSource = FileSystem
·
Properties of TextBox2:
-
AutoCompleteMode = Suggest
-
AutoCompleteSource =
FileSystemDirectories
·
Properties of TextBox3:
-
AutoCompleteMode = Suggest
-
AutoCompleteSource = CustomSource
-
AutoCompleteCustomSource = Uttar Pradesh
Maharashtra
.....
Working with 'TextChanged' event of TextBox:
·
This event executes, when the user types
/ erases any text in the textbox, at run time.
Ex:-
Develop
a c# win app, to show net price automatically, based on the actual product
price, discount = 10% on product price
Steps:
·
Create a new c# win app.
·
Project Name = TextChangedEventDemo
·
Design form1 as shown below.
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
TextChangedEventDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//code:
private void textBox1_TextChanged(object sender, EventArgs e)
{
//get current value of textbox1
string str = textBox1.Text;
if (str == "")
{
label4.Text = "Unknown";
label5.Text = "Unknown";
}
else
{
double Price = Convert.ToDouble(textBox1.Text);
double Discount = Price * 10 / 100;
double NetPrice = Price - Discount;
//show output in labels
label4.Text = Convert.ToString(Discount);
label5.Text = Convert.ToString(NetPrice);
}
}
}
}
Working
with 'KeyPress' event of text box:
·
This event executes when the user press
any key on the keyboard, while workinbg in the text box.
·
This event may also be used to prevent
typing un-expected chars in a textbox.
Steps:
·
Create a new c# win app, which accepts
alphabets only in TextBox1 & 2;
numbers only in TextBox3.
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
KeyPressEventDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code
private bool CheckAlphabet(char ch)
{
char[] AllowedChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' ', '\b' };
if (Array.IndexOf(AllowedChars, ch) >= 0)
return (false); //accept it
else
return (true); //reject it
}
private bool CheckNumber(char ch)
{
if (ch == '1' || ch == '2' || ch == '3' || ch == '4' || ch == '5' || ch == '6' || ch == '7' || ch == '8' || ch == '9' || ch == '0')
return false; //accept it
else
return true; //reject it
}
private void txtFirstName_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = this.CheckAlphabet(e.KeyChar);
}
private void txtLastName_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = this.CheckAlphabet(e.KeyChar);
}
private void txtAge_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = this.CheckNumber(e.KeyChar);
}
}
}
Container
Controls:-
·
These are used to contain various other
controls inside.
·
C# supports two types of containers
1)
Form (Outer container)
2)
Sub container
·
Sub containers are used to divide the
form as no. of units.
·
Sub Containers (Container Controls) in
c#:
1)
Panel
2)
GroupBox
3)
TabControl
4)
FlowLayoutPanel
Panel:-
·
It is a sub container, in which you can
place any controls.
·
It allows its inner controls to be
located based X and Y co ordinates.
Properties
of Panel:
·
BackColor, ForeColor, Font,
BackgroundImage, Size, Location, Cursor etc.
Events
of Panel:
·
MouseMove, MouseEnter, MouseLeave etc.
Ex:-
Demo
on mouse move?
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
PanelDemo1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//code
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = e.X + ",
" + e.Y;
}
//note: 'EventArgs e' is a small
variable, that is available in every event handler, which provides additional
info about current action.
}
}
GroupBox:
·
It is same as Panel, but can show a
title also.
·
Properties of GroupBox:
·
Text, BackColor, ForeColor, Font,
BackgroundImage, Size, Location, Cursor etc.
·
Events of GroupBox:
·
MouseMove, MouseEnter, MouseLeave etc.
TabControl:
·
It is used to show any one tab to the
user.
·
TabControl is a collection of 'tab
pages'.
Steps
for development of TabControl:
·
Drag & drop TabControl into the
form.
·
Note:
by default, it creates two tab pages.
·
Select 'TabControl1' and goto 'TabPages'
property
In
this property, we can add / remove the pages.
·
Place controls directly in the tab
pages.
Ex:-
Develop
a c# win app, which shows 'user profile'.
·
Design the form as shown below:
FlowLayoutPanel:
·
It is used to 'automatically arrange'
the controls in an relative order.
Ex:-
Develop
a 'PhotoGallery' app, using 'FlowLayoutPanel'.
Steps:
·
Create a new c# win app.
·
Drag & drop 'FlowLayoutPanel' from
Toolbox into the form.
·
Drag & drop 9 picture boxes into 'flowlayoutpanel'.
·
Set 'Image' property of all picture
boxes.
·
Set 'SizeMode = Stretch' for all picture
boxes.
·
Properties of 'FlowLayoutPanel1':
BackColor
= { any color }
AutoScroll
= true
Dynamic
Creation of Controls:- (or)
Creating
Controls at run time:-
·
It is used to generate controls
dyanamically at run time.
·
Controls can be created in two ways:
a)
Static Control Creation
b)
Dynamic Control Creation
a)
Static Control Creation
·
Drag & drop the controls from
Toolbox.
·
Easy to create
·
This is good if the developer knows, how
many controls he wants.
b)
Dynamic Control Creation
·
Create control objects thru code
(programmatically).
·
A bit difficult
·
This is good if the developer dont know,
how many controls he wants.
Steps
for dynamic controls creation:
·
Create an object for the control class.
Ø Label
L1 = new Label();
·
Add necessary properties to the object:
Ø L1.Text
= "some text";
Ø L1.Font
= new Font("font name", size);
Ø L1.Location
= new Point(x, y);
Ø L1.Size
= new Size(width, height);
Ø L1.BackColor
= Color.colorname;
Ø L1.ForeColor
= Color.colorname;
Ø etc.
·
Handle the events:
Ø L1.Click
= new System.EventHandler(L1_Click);
·
Add controls to the container:
Ø this.Controls.Add(L1);
(or)
Ø flowLayoutPanel1.Controls.Add(L1);
Ex:-
Develop
an app, which produces 'n' text boxes at run time.
Steps:
·
Create a new c# win app.
Ø Project
Name: DynamicControlsCreationDemo
·
Drag & drop 1 label, 4 buttons, 1
flowlayoutpanel, 1 more button.
·
Properties of label1:
Ø Text
= How many friends you have
·
Properties of button1:
Ø Text
= 5
·
Properties of button2:
Ø Text
= 10
·
Properties of button3:
Ø Text
= 20
·
Properties of button4:
Ø Text
= 30
·
Properties of FlowLayoutPanel1:
Ø BackColor
= {any color}
Ø AutoScroll
= true
·
Properties of button5:
Ø Text
= OK
Code:
using
System;
using System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
DynamicControlsCreationDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code:
//user-defined method
private void GenerateTextBoxes(int n)
{
flowLayoutPanel1.Controls.Clear();
for (int i = 1; i <= n; i++)
{
//step 1: create an object the control
class
TextBox txt = new TextBox();
//step 2: set necessary prop
txt.Name = "TextBox" + i;
txt.BackColor = Color.Aqua;
//step 3: add text box to the container
flowLayoutPanel1.Controls.Add(txt);
}
}
private void button1_Click(object sender, EventArgs e)
{
this.GenerateTextBoxes(5);
}
private void button2_Click(object sender, EventArgs e)
{
this.GenerateTextBoxes(10);
}
private void button3_Click(object sender, EventArgs e)
{
this.GenerateTextBoxes(20);
}
private void button4_Click(object sender, EventArgs e)
{
this.GenerateTextBoxes(30);
}
private void button5_Click(object sender, EventArgs e)
{
for (int i = 0; i <
flowLayoutPanel1.Controls.Count; i++)
{
TextBox txt = (TextBox)flowLayoutPanel1.Controls[i];
string s = txt.Text;
MessageBox.Show(s);
}
}
}
}
Working
with 'Menus' in win forms:
·
Menu: it is a collection of options.
·
Two types of menus:
Ø MenuStrip
Ø ContextMenuStrip
MenuStrip:-
·
Used to create menu bars.
·
Ex:
File Edit View
ContextMenuStrip:
·
Used to create 'right click menus'.
Steps
for working with 'MenuStrip':
·
Drag & drop 'MenuStrip' control from
Toolbox into the form.
Ø Toolbox
> Menus & Toolbars > MenuStrip
·
Design menu items in menu strip, by
clicking on 'Type here' message.
·
Handle 'Click' events for all menu items
(menu options).
·
Run the app, and click on the menu item.
Ex:-
Develop
a c# win app, with following menu.
BackgroundColor
|
BackgroundImage
|
Window
|
Exit
|
Light Yellow
|
Sunset
|
Normal
|
|
Pink
|
Water lilies
|
Minimize
|
|
Chocolate
|
None
|
Maximize
|
|
Blue
|
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
MenuStripDemo2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code
private void lightYellowToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.LightYellow;
}
private void pinkToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Pink;
}
private void chocolateToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Chocolate;
}
private void blueToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
}
private void sunsetToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackgroundImage = Image.FromFile(@"C:\Documents and Settings\All Users\Documents\My
Pictures\Sample Pictures\Sunset.jpg");
sunsetToolStripMenuItem.Checked = true;
waterLiliesToolStripMenuItem.Checked = false;
noneToolStripMenuItem.Checked = false;
}
private void waterLiliesToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackgroundImage = Image.FromFile(@"C:\Documents and Settings\All Users\Documents\My
Pictures\Sample Pictures\Water lilies.jpg");
waterLiliesToolStripMenuItem.Checked = true;
sunsetToolStripMenuItem.Checked = false;
noneToolStripMenuItem.Checked = false;
}
private void noneToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackgroundImage = null;
noneToolStripMenuItem.Checked = true;
sunsetToolStripMenuItem.Checked = false;
waterLiliesToolStripMenuItem.Checked = false;
}
private void normalToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
private void minimizeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
private void maximizeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show(
"Are you sure to close?",
"Peers",
MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
//code for yes
//system will automatically closes the
form
}
else
{
//code for no
e.Cancel = true; //stops closing the form
}
}
}
}
ContextMenuStrip:
·
It is used to create 'right
click menus'
Steps for working with 'Context menu Strip':
·
Drag & drop
'ContextMenuStrip' control from toolbox.
·
Create menu items in
'ContextMenuStrip'
·
Set the property of required
control (or) form
Ø ContextMenuStrip = { name of your context menu strip }
·
Handle click events of each
menu item.
·
Run the app, right on the
required control (or) form & click on the menu item.
ToolStrip:
·
It is used to create tool
bars.
·
A tool bar is a collection
of 'tool bar buttons'.
Steps for working with 'ToolStrip':
·
Drag & drop 'ToolStrip'
control from toolbox.
Ø Toolbox > Menus&Toolbars > ToolStrip
·
Go to 'Items' property of
'ToolStrip' and add required buttons.
·
Double click on each toolbar
button and handle the 'Click' event.
ImageList:
·
It is a collection of few
images.
·
It is used to apply images
to 'menu items' (or) tool bar buttons.
Ex:-
Demo on contextmenu, imagelist, toolstrip
·
Properties of TextBox1:
Ø ContextMenuStrip = ContextMenuStrip1
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using System.Windows.Forms;
namespace
ContextMenuStripDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//any code
}
//code:
private void cutToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Cut();
}
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Copy();
}
private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Paste();
}
private void Form1_Load(object sender, EventArgs e)
{
//applies source of the images to context
menu strip
contextMenuStrip1.ImageList
= imageList1;
//apply image index to the menu items
cutToolStripMenuItem.ImageIndex = 0;
copyToolStripMenuItem.ImageIndex = 1;
pasteToolStripMenuItem.ImageIndex = 2;
//apply source of the images to
toolstrip1
toolStrip1.ImageList = imageList1;
//apply image index to the tool bar
buttons
toolStripButton1.ImageIndex = 0;
toolStripButton2.ImageIndex = 1;
toolStripButton3.ImageIndex
= 2;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
textBox1.Cut();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
textBox1.Copy();
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
textBox1.Paste();
}
}
}
Programming Model of a form:
·
C# recognizes each form as a
class.
·
Generally a class contains 3
types of members:
·
Data members:
Ø All the controls that are placed within the form.
·
Properties:
Ø Text, Backcolor, WindowState etc.
·
Methods:
Ø Event handlers
Ø User-defined methods
Rules a form class:
·
A form class must be a
partial class.
public partial
class Form1 : Form
{
}
·
Observation: for every form, visual studio generates 2
files automatically.
Ex: Form1.cs
Form1.Designer.cs
·
Form1.cs: contains user-defined code of the form, like
event handlers & user-defined methods.
·
Form1.Designer.cs: contains system-generated code (designer
code)
·
Every form must be a child
class of 'System.Windows.Forms.Form' class
Ø It provides designer winow + form properties + form events to the
child class.
·
Every form should contain a
constructor, with InitializeComponent() method.
Ø It internally calls the system defined code.
Code execution sequence of the form:
·
System allocates some memory
for the form object.
·
Constructor
·
Form1_Load()
·
Other event handlers, based
on the action done by user,
Ø ex: button1_Click
·
Form1_FormClosing
Working with 'Popup windows' in Win forms:
·
These are used to open
another form when you click on a button in the first form.
Steps:
·
Add form to the project:
Ø Solution Explorer > Right click on the project name > Add
-> New Item -> Windows Form -> Name = Form2.cs -> Add.
·
Create an object for 'Form2'
class:
Ø Form2 f = new Form2();
·
Show it:
Ø f.ShowDialog();
·
Pass any data to the form
(optional):
Ø f.Tag = value;
Ex:-
Develop a c# win form app, which shows 'hello' message to the
user, in popup window.
Steps:
·
Create a new c# win app
Ø Project Name = PopupWindowDemo
·
Add 'Form2' to the project.
·
Design form1 as shown below
·
Design form2 as shown below
Code for form1:
using
System;
using
System.Collections.Generic;
using System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
PopupWindowsDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Code in 'Form1':
private void button1_Click(object sender, EventArgs e)
{
//create an object for Form2
Form2 f2 = new Form2();
//add data to f2
//f2.Tag = textBox1.Text;
Class1 c1 = new Class1();
c1.a =
10;
c1.b =
20;
f2.Tag =
c1;
//show f2
f2.ShowDialog();
}
}
}
Code for form2:
using
System;
using System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
PopupWindowsDemo
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//code in 'Form2':
private void Form2_Load(object sender, EventArgs e)
{
//label1.Text = "Welcome, " +
Convert.ToString(this.Tag);
//this.Text = "Welcome, " +
Convert.ToString(this.Tag);
Class1 c1 = (Class1)this.Tag;
MessageBox.Show(c1.a.ToString());
MessageBox.Show(c1.b.ToString());
}
}
}
'ErrorProvider' control in WinForms:
·
It is used to validate the
input fields, whether they are correctly entered or not.
Ex:-
Demo on ‘Errorprovider’ control
·
Design form1 as shown below
Code:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
ErrorProviderDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//double click on 'Leave' event of
TextBox1
private void textBox1_Leave(object sender, EventArgs e)
{
//get email from text box
string Email = textBox1.Text;
//check
if (Email.IndexOf(" ") == -1 &&
(Email.EndsWith(".com") || Email.EndsWith(".co.in")) &&
Email.IndexOf("@") > 0)
errorProvider1.SetError(textBox1, ""); //no error msg
else
errorProvider1.SetError(textBox1, "Invalid e-mail"); //show message
}
}
}
No comments:
Post a Comment