Windows Forms – Phần 1

Hầu hết mọi ứng dụng Windows Form mở rộng chức năng của

System.Windows.Forms. Chức năng cơ bản của lớp Form không thể tạo một

cửa sổ có thể sống và tương tác trong môi trường Windows một cách đúng

đắn. Đây là một thuận lợi như một điểm khởi đầu và bằng việc mở rộng lớp

Form và thêm các control tuỳ biến và các bộ điều khiển sự kiện tuỳ biến,

một ứng dụng rất hữu ích được tạo để có thể tương tác với người dùng và dữ

liệu hiện tại thông qua một giao diện người dùngtinh vi.

pdf10 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 2125 | Lượt tải: 4download
Tóm tắt nội dung Windows Forms – Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Windows Applications 
Windows Forms – Phần 1 
Hầu hết mọi ứng dụng Windows Form mở rộng chức năng của 
System.Windows.Forms. Chức năng cơ bản của lớp Form không thể tạo một 
cửa sổ có thể sống và tương tác trong môi trường Windows một cách đúng 
đắn. Đây là một thuận lợi như một điểm khởi đầu và bằng việc mở rộng lớp 
Form và thêm các control tuỳ biến và các bộ điều khiển sự kiện tuỳ biến, 
một ứng dụng rất hữu ích được tạo để có thể tương tác với người dùng và dữ 
liệu hiện tại thông qua một giao diện người dùng tinh vi. 
Chúng ta đang xem xét cách tiến trình này làm việc theo hai cách. Để hiểu 
tốt hơn cách mà Windows Forms hoạt động và cách nó tương tác với .NET 
Framework, chúng ta sẽ xây dựng một ứng dụng Window hoàn toàn mà 
không sử dụng Visual studio.NET. Nó sẽ cung cấp cho bạn một sự đánh giá 
mạnh mẽ về Visual studio.NET khi chúng ta chuyển đến xây dựng một ứng 
dụng Window Form sử dụng nó. VS.NET cho phép các nhà phát triển tạo 
ứng dụng Window Form nhanh hơn và hiệu quả hơn. 
Windows Forms không sử dụng Visual Studio .NET 
Hầu hết mọi ứng dụng Window Form sẽ mở rộng lớp System.Windows.Form 
để tuỳ chỉnh và thêm nguyên lý kinh doanh. Vì thế, ứng dụng Windows 
Form đơn giản nhất sẽ trình bày bên dưới: 
using System; 
using System.Windows.Forms; 
namespace WindowsFormsApp 
{ 
 class MyForm : Form 
 { 
 static void Main(string[] args) 
 { 
 MyForm aForm = new MyForm(); 
 Application.Run(aForm); 
 } 
 } 
} 
Để xem vấn đề này trong hành động, bạn hãy lưu đoạn mã trên với tên 
BasicForm.cs, sau đó biên dịch và chạy nó. Khi đó bạn sẽ thấy kết quả như 
sau: 
Khi ứng dụng trên được chạy, một cửa sổ cơ bản sẽ được mở ra. Chú ý rằng 
cửa sổ hành động giống như một cửa sổ chuẩn và có thể được thu nhỏ, mở 
to, kéo đi, hay đóng lại. Nó là một ứng dụng Window đầy đủ chức năng 
trong 13 dòng mã. Hãy xem đoạn mã của nó để hiểu những gì đang xảy ra 
trước khi ta thấy những điều thú vị hơn sau đây. 
 class MyForm : Form 
Dòng này chỉ rằng lớp của chúng ta đang thừa hưởng từ lớp 
System.Windows.Forms.Form, có nghĩa là chúng giành được truy cập đến tất 
cả chức năng của lớp Form cơ bản. Tiếp đến, chú ý rằng trong phương thức 
Main() chúng ta tạo một thể hiện của đối tượng MyForm và chuyển nó đến 
phương thức Application.Run(): 
 static void Main(string[] args) 
 { 
 MyForm aForm = new MyForm(); 
 Application.Run(aForm); 
 } 
Application là một lớp static trong System.Windows.Forms namespace, nó 
chứa các phương thức để bắt đầu và dừng các ứng dụng và các luồng. 
Phương thức Run() có thể chấp nhận vài tham số; bằng việc truyền vào một 
đối tượng Form chúng ta đang báo hiệu với .NET Framework bắt đầu xử lý 
các tin nhắn Window cho form này, và để thoát khỏi ứng dụng khi form này 
đóng. 
Các Control 
Hãy thêm một control đơn giản Button vào form. Chúng ta sẽ thấy các sự 
kiện bao quát hơn, bây giờ chúng ta chỉ xem xét những gì nó làm để thêm 
một control vào một ứng dụng Window Form không dùng Visual 
studio.NET. 
Về cơ bản, mọi control trên form là một thành phần dữ liệu của lớp custom 
Form. Vì thế, để thêm một Button vào form, chúng ta sẽ thêm một thành 
phần dữ liệu Button mới vào lớp MyForm. Thêm dòng sau vào tập tin 
BasicForm.cs: 
 class MyForm : Form 
 { 
 //Data member to hold Button control 
 private Button BigButton; 
Trước khi thành phần dữ liệu này làm bất cứ điều gì hoặc hiển thị một nút 
trên form nó phải được khởi tạo và các thuộc tính khác nhau của Button phải 
được định hình. Nó nên được thực hiện trong constructor cho đối tượng 
MyForm. Tại thời điểm đó chúng ta sẽ cài các thuộc tính cho chính đối 
tượng Form, như là size và name. Chú ý rằng có nhiều thuộc tính có thể 
được cài và thực hiện. Vì thế trong constructor là thời điểm tốt nhất để thực 
hiện khởi tạo giá trị. Thêm khối mã sau vào constructor của MyForm: 
 public MyForm() 
 { 
 //Set the properties for the Button 
 BigButton = new Button(); 
 BigButton.Location = new System.Drawing.Point(50, 50); 
 BigButton.Name = "BigButton"; 
 BigButton.Size = new System.Drawing.Size(100, 100); 
 BigButton.Text = "Click Me!"; 
 //Set properties of the Form itself 
 ClientSize = new System.Drawing.Size(200, 200); 
 Controls.Add(BigButton); 
 Text = "My Windows Form!"; 
 } 
Đoạn mã này đầu tiên khởi tạo một đối tượng Button mới và ấn định nó vào 
thành phần dữ liệu riêng BigButton. Nó sau đó cài các thuộc tính Location, 
Name, Size, và Text để với các giá trị thích hợp. Bất kỳ thuộc tính nào 
không cài ở đây sẽ lấy giá trị mặc định. 
Những dòng tiếp theo cài kích cở của form, và sau đó phương thức 
this.Controls.Add() được gọi để thêm control Button vào tập hợp Controls 
của form. Việc này được yêu cầu trước khi nút sẽ được hiển thị trên form. 
Tập hợp Controls sẽ chứa tất cả các control trên một form và có thể cập nhật 
và sửa đổi tự động trong thời gian chạy để thêm và xoá các control nếu cần. 
Chúng ta sẽ xem xét cách chúng thực hiện ở phần sau của chương. 
Nếu bạn chạy ứng dụng tại điểm này, bạn sẽ thấy một cửa sổ như sau: 
Tuy nhiên, không có gì xảy ra khi nút được click. Để thay đổi chúng ta sẽ 
cần thêm một sự kiện vào đoạn mã. 
Các sự kiện (event): 
Mỗi đối tượng trong một ứng dụng Windows Form có một tập sự kiện. Nếu 
bạn muốn có một đoạn mã thực hiện một điều gì đó khi các sự kiện xảy ra, 
bạn nên thêm một bộ điều khiển sự kiện(event handler) vào lớp và kết hợp 
nó với đối tượng. 
Để Windows Forms được sử dụng đoạn mã của bạn, bạn phải truyền cho nó 
vị trí của phương thức bộ điều khiển sự kiện trong đoạn mã của bạn. Bạn 
thực hiện bằng cách tạo một thể hiện delegate thích hợp kết hợp với một 
phương thức trong lớp custom Form. 
Để thêm vài chức năng cho nút đó, ta cần thêm vài dòng mã vào lớp chúng 
ta. Thêm phương thức sau vào lớp Form của chúng ta. Nó sẽ hành động như 
bộ điều khiển sự kiện cho sự kiện Click của nút. Chú ý rằng bộ điều khiển sự 
kiện có thể được gọi bất kỳ đối tượng nào. Sự kiện của control tự định nghĩa 
tham số cho phù hợp với bộ điều khiển. 
 static void Main(string[] args) 
 { 
 MyForm aForm = new MyForm(); 
 Application.Run(aForm); 
 } 
 private void ClickHandler(object sender, System.EventArgs e) 
 { 
 MessageBox.Show("Clicked!","My Windows 
Form",MessageBoxButtons.OK); 
 } 
Hầu hết các bộ điều khiển sự kiện Windows Forms có dạng phương thức 
này. Thông số đầu tiên chứa đối tượng khởi sự kiện. Trong trường hợp này 
nó sẽ là đối tượng Button từ lớp MyForm. Thông số tiếp theo chứa dữ liệu 
về sự kiện trong một thông số System.EventArgs hay lớp thừa hưởng. Lớp 
System.EventArgs không chứa dữ liệu- Nó chỉ hành động như một lớp cơ sở. 
Nếu một sự kiện phải truyền dữ liệu đến client thì nó phải sử dụng một lớp 
thừa hưởng. Sự kiện Button.Click không cần truyền bất kỳ thông tin thêm 
vào, vì thế nó sử dụng lớp System.EventArgs cơ sở. 
Cuối cùng, thêm đoạn mã sau vào constructor MyForm để sự kiện gắn bộ 
điều khiển sự kiện của chúng ta vào sự kiện trong lớp MyForm. 
public MyForm() 
{ 
 //Set the properties for the Button 
 BigButton = new Button(); 
 BigButton.Location = new System.Drawing.Point(50, 50); 
 BigButton.Name = "BigButton"; 
 BigButton.Size = new System.Drawing.Size(100, 100); 
 BigButton.Text = "Click Me!"; 
 BigButton.Click += new EventHandler(ClickHandler); 
 //Set properties for the Form itself 
 ClientSize = new System.Drawing.Size(200, 200); 
 Controls.Add(BigButton); 
 Text = "My Windows Form!"; 
} 
Ví dụ này trình bày cách Windows Form sử dụng delegates để wrap một 
phương thức của đối tượng trước khi ấn định nó vào sự kiện chúng ta muốn 
vận dụng. System.EventHandler delegate được sử dụng để tham khảo 
phương thức ClickHandler() và nó được liên kết với sự kiện Click của nút 
bằng cách thêm nó vào bộ điều khiển sự kiện Click. Chú ý cú pháp sử dụng - 
có nghĩa là các bộ điều khiển sự kiện thêm vào có thể được liên kết với một 
sự kiện đơn. Chúng sẽ được xử lý để chúng được thêm vào bộ điều khiển sự 
kiện. 
Biên dịch ứng dụng lại, và chạy nó. Lúc này khi click nút bạn sẽ thấy một 
hộp tin nhắn nhỏ. 

File đính kèm:

  • pdf64_0983.pdf
Tài liệu liên quan