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
            
         
        
    




 
                    