Xem mẫu
- Chương 5 .Giao diện người dùng đồ họa
(Graphical User Interface)
5.1 Giới thiệu
Outline 5.2 Windows Forms
5.3 Mô hình kiểm soát sự kiện (Event-Handling Model)
5.3.1. Mô hình kiểm soát sự kiện chung
5.3.2. Kiểm soát sự kiện chuột
5.3.3. Kiểm soát sự kiện bàn phím
5.4 Control Properties và Layout
5.5 Labels, TextBoxes và Buttons
5.6 GroupBoxes và Panels
5.7 CheckBoxes và RadioButtons
5.8 PictureBoxes
5.9 Menus
5.10 LinkLabels
5.11 ListBoxes và CheckedListBoxes
5.11.1 ListBoxes
5.11.2 CheckedListBoxes
5.12 ComboBoxes
5.13 TreeViews
5.14 ListViews
5.15 Tab Control
5.16 Multiple Document Interface (MDI) Windows
5.17 Thừa kế trực quan (Visual Inheritance)
5.18 Điều khiển do người sử dụng định nghĩa.
- 5.1 Giới thiệu
Giao diện người dùng đồ hoạ (Graphical user interface)
Cho phép tương tác với chương trình một cách trực quan
Cho chương trình một cái nhìn rõ ràng và sự thoải mái
Xây dựng theo sự cải tiến của window
Là một đối tượng, có thể tiếp cận qua chuột hoặc bàn phím
- Ví dụ về một giao diện người dùng:
Nhãn Thanh
Các nút
cuốn
Textbox
- Loại Mô tả
Nhãn label Là một vùng trong đó một icon hoặc một văn bản tĩnh (uneditalbe text)được hiển thị
Hộp nhập Là một vùng mà trong đó người sử dụng nhập dữ liệu từ bàn phím. Vùng này cũng có thể dùng để
(Text box) hiển thị thông tin.
Nút điều khiển Là một vùng mà khi click vào thì một sự kiện sẽ được thực thi (trigger)
(button)
Hộp kỉêm Là một giao diện người dùng mà chỉ có hai trạng thái chọn hoặc không chọn.
(checkbox)
hộp combo Là một danh sách kéo thả các mục mà từ đó người sử dụng có thể dùng để lựa chọn bằng cách click
(combobox) vào một mục từ list đó hoặc bằng cách đánh vào hộp (nếu được).
Listbox Là một vùng mà trong đó là một danh sách các mục được hiển thị mà từ đó người sử dụng có thể lựa
(hộp danh sách). chọn bằng cách click vào một dòng bất kỳ. Đa lựa chọn cũng có thể được tiến hành.
Panel Là một vùng mà có thể chứa trong đó các thành phần.
Thanh cuộn Cho phép người sử dụng có thể tiếp cận vào một dãy các giá trị mà độ dài của nó không thể phù
(scrollBar)
hợp với kích thước của vùng chứa.
- 5.2 Windows Forms
WinForms
Tạo giao diện người dùng đồ hoạ cho chương trình
Các phần tử trên màn hình nền
Đặc trưng bởi:
Dialog ( Lớp )
Window (Cửa sổ)
MDI window (Cửa sổ giao diện đa văn bản)
Các thành phần
Lớp: là phần thực thi giao diện Icomponent
Thiếu các thành phần trực quan
- 5.2 Windows Forms
Điều khiển
Các thành phần cùng với phần giao diện
Như nút hoặc nhãn
Có thể quan sát được
Sự kiện
Được phát sinh bởi sự chuyển động của chuột và bàn phím.
Điều khiển các sự kiện để thực thi các hành động.
được xác định, viết bởi lập trình viên
- Các thành phần và điều khiển của window forms
- Form thuộc tính Mô tả/ Điển hình và Đối số sự kiện
Và sự kiện
AccepButton Nút mà bị click khi mà phím Enter được ấn
AutoScroll Thanh cuộn sẽ tự động xuất hiện khi cần (nếu mà dữ
liệu nhiều hơn kích thước).
CancelButton Nút được kích hoạt khi mà phím Escape được ấn
FormBorderStyle làm viền cho các nút ( vd : none, single, 3D, sizable)
Font Font của text hiển thị trên form, cũng như mặc định
của điều kiển được thêm vào form).
Text Văn bản hỉên thị trên thanh tiêu đề (title bar) của form
Common Methods
Close Đóng form và giải phóng toàn bộ tài nguyên. Một form close không thể được mở lại.
Hide Giấu một form (không giải phóng tài nguyên của nó).
Show Hiển thị một form đã bị giấu.
Common Evént
Load Thi hành trước khi một form được xuất hiện. Sự kiện này là mặc định khi mà form được
double_clicked trên visual studio. Net designer.
- 5.3 Mô hình kiểm soát sự kiện
(Event-Handling Model)
GUIs là sự kiện được kiểm soát
Kiểm soát sự kiện
Các phương thức xử lý sự kiện và thực hiện nhiệm vụ.
Đại diện liên hợp
Các đối tượng mà được tham chiếu bởi phương thức
Chứa danh sách của method (cách thức) tham chiếu tới
Phải có cùng một “dấu hiệu, chữ ký”
Là trung gian của đối tượng và phương thức
“chữ ký” cho sự kiện điều khiển
- Gọi Kiểm soát 1 cho sự
kiện E
Gọi
Đối tượng A sinh ra Đại diện cho sự Kiểm soát 2 cho sự
sự kiện E kiện E kiện E
Kiểm soát 3 cho sự
kiện E
Hình 5.3 Mô hình kiểm soát sự kiện dùng hàm đại diện
- 5.3.1. Mô hình kiểm soát sự kiện chung
Điều khiển sự kiện
Phải có cùng signature để phù hợp với đại diện
Hai đối tượng quy chiếu phải hợp quy cách
ControlName_EventName
Phải đăng ký với đối tượng đại diện
Thêm một điều khiển sự kiện vào một danh sách của đại
diện
Một đối tượng đại diện mới cho mỗi điều khiển sự kiện
Sự kiện đa khung (multicasting)
Có nhiều điều khiển cho một sự kiện
Thứ tự gọi cho điều khiến sự kiện là không xác định
- biểu tượng
sự kiện
Danh sách
các sự kiện
cung cấp bởi
điều kiển
lựa chọn
sự kiện.
Mô tả sự
kiện.
Phần sự kiện của cửa sổ property.
- 1 // Fig. 12.7: SimpleEventExample.cs
2 // Using Visual Studio .NET to create event handlers.
3
4 using System;
5 using System.Drawing;
6 using System.Collections;
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 T// Visualểm soát sự
ạo ki Studio .NET generated code
17 kiện Lớp EventArgs là lớp cơ
18 [STAThread]
19 static void Main() sở cho các đối tượng với
thông tin sự kiện
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 } Quy chiếu tới đối
30 Quy chikýuctủa đốều khiển
Chữ ế ới đi i tượng
tượng có đối số
31 } // end class MyForm gâyự kisự kiện (sender)
s ra ện
sự kiện là e
- sau khi ấn nút ok
Các điều khiến sự kiện cơ bản.
- Danh sách
các sự
kiện.
Tên lớp
Hình 5.3 Danh sách các sự kiện Form.
- Chi tiết của sự kiện click
đối tượng
đại diện.
Tên sự
kiện
lớp đối
sự kiện
- 5.3.2. Kiểm soát sự kiện chuột
Lớp MouseEventArgs
Chứa hệ trục toạ độ của con trỏ chuột
chuột được ấn
Số lần nhấn chuột
Số lượng notch của bánh xe chuột trả lại
Di chuột
Phương thức sự kiện chuột lấy một đối tượng và nhận đối tượng
MouseEventArgs là một đối
Sự kiện click sử dụng đại diện eventHandler và đối số sự kiện
EventArgs
- Sự kiện,đại diện và đối Mô tả
số sự kiện
Sự kiện chuột (delegate
eventHandler, event
arguments EventArgs)
Mouse Enter Thi hành khi mà con trỏ chuột được ấn vào vùng c ủa đi ều khi ển.
MouseLeave Thi hành khi mà con trỏ chuột rời khỏi vùng c ủa đi ều khi ển.
Sự kiện chuột
MouseDown Thi hành nếu nút chuột được ấn trong lúc con trỏ chuột ở trên vùng đi ều khi ển .
Mouse Hover Thi hành khi con trỏ chuột nằm trên vùng đi ều khi ển .
MouseMove Thi hành khi mà con trỏ chuột được di chuyển trong lúc ở trên vùng đi ều khi ển .
MouseUp Thi hành khi con trỏ chuột được thả trong khi nó nằm trên vùng đi ều khi ển .
Thuộc tính lớp
MouseEventArgs
Button Nút chuột được nhấn(phải,trái,giữa,không).
Clicks số lần mà nút chuột được nhấn
X toạ độ X của sự kiện,có liên hệ với các thành phần (component)
Y toạ độ Y của sự kiện, có liên hệ với các thành phần (component)
- 1 // Painter.cs
2 // Using the mouse to draw on a form.
3
4 using System;
5 using System.Drawing;
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 Tạo một biến shouldPaint để
12 public class Painter : System.Windows.Forms.Form
13 { xác định xem có thể vẽ được
14 bool shouldPaint = false; // whether to paint hay không trên form.
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( Kiểm soát sự kiện
25 object sender, System.Windows.Forms.MouseEventArgs e ) MouseDown
26 {
27 shouldPaint = true; Con trỏ chuột được đặt là
shouldPaint
28 } true khi sự kiện xảy ra
sẽ vẽ
29
30 // stop painting when mouse button released
31 private void Painter_MouseUp( Kiểm soát sự kiện
32 object sender, System.Windows.Forms.MouseEventArgs e )
33 { shouldPaint là false,trỏ MouseUp
34 shouldPaint = false; chuột sẽ không vẽ
35 }
- 36
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 )
41 { Chương trình o đốiẽượng đồ
Tạ chỉ v t nếu
42 if ( shouldPaint )
43 { hoạ true
shouldPaint là trên form
44 Graphics graphics = CreateGraphics(); Phương thức FillEllipse vẽ một vòng
45 graphics.FillEllipse( Cung cấp phươngở mỗi điểm mà con trỏ chuột đi
tròn o đối tượng mới SolidBrush
46
Tạ
new SolidBrush( Color.BlueViolet ẽ các hình
),
thức để v
47 e.X, e.Y, 4, 4 ); bằ và cách truyền là true
qua ng shouldPaintkhởi tạo giá
48 } dạng khác nhau
trị cùng
Toạ độ của x và đColor chiều cao và rộng
SolidBrush màu yịnh màu
49
c a ứ ể các xác
Cấu trúc Colorủchđia m được cho vào danh sách tham
50 } // end Painter_MouseMove ần vẽ
c
51
có sẵn số
52 } // end class Painter Painter.cs
output
nguon tai.lieu . vn