Chương 8: Lập trình với Windows Forms
Một số vấn đề lập trình trên Windows Forms Tạo Main Menu Common Dialog Message Box Controls
Bạn đang xem trước 20 trang tài liệu Chương 8: Lập trình với Windows Forms, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Chương 8:
Lập trình với Windows Forms
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
2
Nội dung
Một số vấn đề lập trình trên Windows
Forms
Tạo Main Menu
Common Dialog
Message Box
Controls
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
3
Lập trình trên môi trường Windows
Lập trình sự kiện
Hướng đối tượng
Component
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
4
Tạo ứng dụng trên Windows
File \ New \ Project
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
5
Form
Kế thừa từ System.Windows.Forms.Form
Là lớp đối tượng
Có thể thiết kế các thành phần (control) trên form
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
6
Thêm Form vào ứng dụng
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
7
Thuộc tính của Form
Name
BackColor
BackGroundImage
ForeColor
Text
Font
AcceptButton
CancelButton
Opacity
Icon
Topmost
MaximizeBox
MinimizeBox
ControlBox
StartPosition
WindowState
CenterScreen
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
8
Phương thức của Form
Show( )
Activate( )
Refresh( )
Hide( )
Close( )
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
9
Sự kiện trên Form
Load
Activated
Shown
DeActivate
FormClosing
FormClosed
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
10
Đặt Form khởi động
Trong class Program.cs:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Test_Form());
}
Thay tên form được đặt làm form khởi động
trong lệnh
Application.Run(new ());
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
11
Tạo Main Menu
Cách tạo Main Menu
Gắn các phương thức cho menu
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
12
Cách tạo Main Menu
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
13
Bài tập
Tạo Form có menu như mẫu
Thực hiện:
20 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
14
Gắn các phương thức cho menu
Double-click vào menu và viết lệnh
private void InitializeComponent()
{
…
this.mnExit.Click += new
System.EventHandler(this.mnExit_Click);
}
private void mnExit_Click(object sender, EventArgs e)
{
this.Close();
}
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
15
Common Dialog Box
private void mnLoad_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";
dlg.Title = "Load Photo";
if (dlg.ShowDialog() == DialogResult.OK)
{try
{
pbxImage.Image = new Bitmap(dlg.OpenFile());
}
catch (Exception ex)
{
MessageBox.Show("Unable to load file:\n" + ex.Message);
}
}
dlg.Dispose();
}
Dùng Toolbox hoặc viết lệnh
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
16
Common Dialog Box
private void mnLoad_Click(object sender, EventArgs e)
{
…
if (dlg.ShowDialog() == DialogResult.OK)
{
…
}
…
}
Thuộc tính DialogResult: OK, Cancel, Abort, Retry,
Ignore, Yes, No (None)
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
17
Message Box
In ra một thông báo của hệ thống
private void mnExit_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Do you want to exit?",
"My Application", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)
{
this.Close();
}
}
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
18
MDI Form
Cửa sổ cho phép chứa nhiều tài liệu
Đặt form làm cửa sổ chính (chứa các cửa sổ khác):
this.IsMdiContainer = True;
Đặt form làm cửa sổ con:
frmChild.MdiParent = this;
Tạo của sổ mới là cửa sổ con:
private void mnNew_Click(object sender, EventArgs e)
{
Form frmChild = new Form();
frmChild.MdiParent = this;
frmChild.text = “abc”;
frmChild.Show();
}
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
19
Quản lý cửa sổ MDI
Sắp xếp các cửa sổ trong MDI
private void mnTileArrangeIcons_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.ArrangeIcons);
}
private void mnCascade_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade);
}
private void mnTileHorizontal_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
private void mnTileVertical_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout. TileVertical);
}
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
20
Quản lý cửa sổ MDI
Tạo danh sách các cửa sổ MDI trong menu
childForm.Text = dlg.FileName;
mnWindow.DropDownItems.Add(childForm.Text);
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
21
ToolBar
Tạo ToolBar
Chọn ToolStrip vẽ lên form
Click vào Button để tạo các nút trên ToolBar
Button: Nút ấn
DropDownButton: Nút sổ xuống
Separator: Đường phân cách
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
22
ToolBar
Định hình ảnh cho nút trên ToolBar:
Right-click chọn Set Image
Local Resource Import Chọn hình ảnh
Viết lệnh
Gọi từ menu: .PerformClick();
Viết lệnh trực tiếp
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
23
Picture Box
Thuộc tính
Image
ImageLocation
SizeMode
private void mnStretch_Click(object sender, EventArgs e)
{
pbxImage.SizeMode = PictureBoxSizeMode.StretchImage;
}
private void mnActualSize_Click(object sender, EventArgs e)
{
pbxImage.SizeMode = PictureBoxSizeMode.Normal;
}
StretchImage
Normal
AutoSize
CenterImage
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
24
Bài tập
Thêm vào form menu View như hình sau:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
25
Label
Thuộc tính
Text
Font
TextAlign
TabIndex
Event
Click
TextChanged
KeyPress
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
26
TextBox
Thuộc tính
Text
Font
TextAlign
TabIndex
Event
Click
TextChanged
KeyPress
MultiLine
PasswordChar
ReadOnly
ScrollBar
AcceptReturn
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
27
Button
Thuộc tính
Text
Font
TextAlign
TabIndex
Event
Click
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
28
Bài tập
Tạo Form, khi click vào nút View thì nội
dung được gõ trong textbox sẽ hiển thị
trong label
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
29
Bài tập
Thiết kế và viết chương trình máy
tính Calculator đơn giản
Thực hiện:
45 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
30
List Box
Thuộc tính
Items
MultiColumn
SelectedIndex
SelectedIndices
SelectedItem
SelectedItems
Sorted
SelectionMode
Count
Truy xuất dòng thứ i trong ListBox
for(int i = 0, i< ls1.Count, i++)
{
ls2.Items.Add(ls1.Items[i].ToString());
}
One
Multi
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
31
List Box
Phương thức
GetSelected(index)
Add(text)
RemoveAt(row)
Clear()
Event
SelectedIndexChanged
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
32
Bài tập
Tạo form thực hiện việc thêm xóa các
thành phần trong ListBox như sau:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
33
Bài tập
Tạo form thực hiện việc di chuyển qua
lại giữa hai ListBox như sau:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
34
Checked ListBox
Thuộc tính
CheckedItems
CheckedIndices
Phương thức
GetItemChecked(index)
Event
ItemCheck
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
35
Bài tập
Tạo form theo mẫu, các Item được chọn
trong Checked ListBox sẽ hiển thị trong
ListBox và sẽ mất trong ListBox khi không
được chọn
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
36
Combo Box
Thuộc tính
DropDownStyle
Items
SelectedIndex
SelectedItem
Sorted
Simple
DropDown
DropDownList
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
37
Combo Box
Phương thức
Add(text)
RemoveAt(row)
Clear()
Event
SelectedIndexChanged
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
38
Bài tập
Tạo form thực hiện chọn font và size từ
Combo box:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
39
Bài tập
Tạo form thực hiện vẽ các hình ảnh được
chọn từ Combo box:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
40
Check Box
Cho phép chọn một số tùy chọn
Các lựa chọn không loại trừ lẫn nhau
Thuộc tính
Checked
Text
Sự kiện
CheckedChanged
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
41
Bài tập
Tạo form cho phép chọn kiểu chữ và kích
thước chữ cho nội dung trong Label như sau:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
42
GroupBox
Dùng để chứa các đối tượng khác
Thuộc tính
Text
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
43
Panel
Dùng để chứa các đối tượng khác nhưng không có
tiêu đề
Thuộc tính
BorderStyle
None
FixedSingle
Fixed3D
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
44
Radio Button
Cho phép chọn một số tùy chọn
Các lựa chọn loại trừ lẫn nhau
Thuộc tính
Checked
Text
Sự kiện
CheckedChanged
Click
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
45
Bài tập
In message Box dựa vào các tùy chọn như sau:
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
46
Tab Control
Tạo ra các cửa sổ Tab
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
47
Tab Control
Tạo ra các cửa sổ Tab
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
48
Tab Control
Tạo ra các cửa sổ Tab
Thêm cửa sổ Tab
Add Tab
Xóa cửa sổ Tab
Remove Tab
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
49
Tạo ứng dụng sau:
Bài tập
Thực hiện:
15 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
50
Timer
Thuộc tính
Interval (ms)
Enabled
Phương thức
Start()
Stop()
Event
Tick
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
51
Bài tập
Đặt chu kỳ 5 phút tự kết thúc chương trình
Thực hiện:
5 min
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
52
Q&A