Trong các sự kiện của button thì chỉ có sự kiện Click chuột là quan trong nhất. Do đó, trong phần này ta cũng chỉ đi tìm hiểu sự kiện Click chuột.
Cách tạo:
Sự kiện click chuột là sự kiện mặc định của control button, do đó, bạn chỉ cần double click chuột vào button cần tạo sự kiện là VS .Net sẽ mở cửa sổ source code ra và tự động generate một hàm xử lý sự kiện click chuột cho bạn.
private void button1_Click(object sender, System.EventArgs e)
{
//Bạn sẽ đánh code cho phần xử lý sự kiện ở đây.
}
với button1_Click thì button1 chính là tên của control button mà bạn tạo sự kiện Click chuột cho nó.
a) Hãy tạo 1 project có tên là Button và thiết kế form có 1 button giống như hình bên dưới:
Với các thuộc tính:
Đối Tượng |
Thuộc Tính | Giá Trị |
Form |
Text Name |
Button Mặc định |
Button | Text Name |
Click chuột vào đây! Mặc định. |
Và tạo một sự kiện click chuột cho button này.
Bạn double click chuột vào button, Visual Studio sẽ sinh ra cho bạn một hàm để sử lý sự kiện click chuột vào button. Vì sự kiện Click là sự kiện mặc định của button nên khi bạn double click vào thì sự kiện click cho button đó sẽ được tự động sinh ra. Sau đó đánh thêm vào đoạn code sau:
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show(“Xin chào các bạn!”);
}
MessageBox là đối tượng hiển thị các thông báo trên màn hình.
Lưu ý:
– Khi bạn muốn tạo 1 sự kiện cho một control nào đó, bạn chọn event trong cửa sổ properties của đối tượng đó, và Visual Studio sẽ tự động chuyển sang màn hình source code và 1 hàm xử lý sự kiện được tự động tạo ra cho bạn. Tuy nhiên, hệ thống nó sẽ sinh ra nhiêu đoạn mã khác nhưng nó được cất dấu ở trong phần riêng của form và được ẩn đi. Hình dưới:
+ Windows Form Designer generated code
Bạn có thể xem đoạn code bên trong bằng cách bấm chuột vào dấu +. Bạn có thể thay đổi source code này theo ý mình nhưng tôi khuyên bạn không nên chỉnh sửa nó trừ khi bạn biết rõ mình sửa nó để làm gì và với mục đích gì.
– Như đã trình bày ở trên, khi bạn đánh vào font chữ việt sự dụng font unicode, bạn phải lưu form ở chế độ save as unicode (xem lại trên).
Bạn hãy chạy chương trình bằng cách bấm phím F5 để xem kết quả.
b) Hãy tạo 1 form gồm 2 button giống như hình dưới:
Khi button Xanh được bấm thì màu nền của form sẽ đổi sang màu xanh, button Đỏ được bấm thì màu nền của form sẽ đổi sang màu đỏ, và button mặc định được bấm thì màu nền của form lại trở về như lúc đầu.
Các thuộc tính:
Đối Tượng |
Thuộc Tính |
Giá Trị |
Form |
Name Text |
frmMauNen Button Đổi Màu Nền Cho Form |
Button | Name Text |
btnXanh Xanh |
Button | Name Text |
btnDo Đỏ |
Button | Name Text |
btnMacDinh Mặc Định |
Dưới đây là source code:
– Cho button btnXanh
private void btnXanh_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Blue;
}
– Cho button btnDo
private void btnDo_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Red;
}
– Cho button btnMacDinh
private void btnMacDinh_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Empty;
}
Giải thích: Các tên hàm và các tham số là do Visual Studio .Net tự nó generate ra cho chúng ta nên ta chỉ xét các code bên trong.
this : chỉ đối tượng chính nó (nó giống như Me trong VB6). Ở đây nó chính là form frmMauNen.
Color: là đối tượng màu được lưu sẵn trong thư viện của VS .Net
Blue, Red: là hằng số về màu có sẵn trong thư viện của VS .Net
this.BackColor: ta thấy this là đối tượng, BackColor chính là thuộc tính. Và tương tự với những đối tượng và thuộc tính khác.
c) Nâng cao: ở ví dụ trên, bạn hãy viết thêm đoạn code để khi mặc định thì button mặc định mờ căm (disable), 2 button kia thì bình thường (enable); Khi button đỏ được bấm thì button đỏ sẽ tự mờ căm (disable), 2 button kia bình thường; Khi button xanh được bấm thì button xanh sẽ tự mờ căm, 2 button kia bình thường.
Ghi chú:
– Trong lập trình visual, các đối tượng đều có tên riêng của nó. Vì vậy để cho dễ dàng trong việc quản lý và lập trình, người ta thường đưa ra quy ước các tên của đối tựong. Bảng dưới đây mô tả cách đặt tên cho một số các control thông dụng mà ta thường sử dụng trong lập trình giao diện.
Kiểu Điều Khiển
Cùm Từ Đứng Đầu
Ví Dụ
Form
frm
frmNhapSVButton
btn
btnDoLabel
lbl
lblMsgHộp văn bản (Textbox)
txt
txtHovaTenSVHộp đánh dấu (Checkbox)
chk
chkReadOnlyNút tuỳ chọn (radio button)
opt
optGioiTinhHộp kết hợp (combo box)
cbo
cboKhoaHình ảnh (Image)
img
imgSinhVienLưới (Grid)
grd
grdDanhSachSVThanh cuộn đứng
hsb
hsbVolumeThanh cuộn ngang
vsb
vsbVolumeThanh công cụ (ToolBar)
tlb
tlbQLSVMenu
mnu
mnuQLSVHộp hội thoại thông dụng
dlg
dlgFileOpenThời giam (Timer)
tmr
tmrAlarm
– Một lợi ích khi lập trình visual là các công cụ hỗ trợ lập trình visual (như Visual Studio .Net) thường có hỗ trợ cú pháp trong quá trình bạn code.
Khi bạn code, như ví dụ trên, khi bạn đánh vào this. (chấm) thì lập tứng một cửa sổ popup sổ xuống list cho ta danh sách các thuộc tính và phương thức của đối tượng ta vửa mới đánh vào (this).
Nhãn là thành phần đơn giản nhất và cũng là một trong những thành phần quan trọng nhất trong lập trình visual. Đối tượng nhãn (Label) chỉ để dùng trình bày một chuổi văn bản thông thường nhằm mục đính mô tả thêm thông tin cho các đối tượng khác. Ta cũng có thể dùng nhãn để làm công cụ đưa kết quả ra màn hình dưới dạng một chuỗi.
Cũng giống như button và hầu hết các control khác trong lập trình visual, để tạo một nhãn trên form, ta chỉ cần kéo đối tượng nhãn từ hộp công cụ ToolBox vào form giống như hình dưới đây:
Nhìn chung, các thuộc tính của các đối tượng window form control cũng gần gần như nhau. Do đó, các thuộc tính mà giống với thuộc tính như của control button như name, text, font, backcolo, v.v… thì tôi sẽ không trình bày ra nữa. Sau đây là một số thuộc tính thông dụng của nhãn (Label):
Tên Thuộc tính |
Giá Trị |
Diễn giải |
BorderStyle | None (mặc định) | Không có đường viền |
FixedSingle | Có đường viền bao quanh | |
Fixed3D | 3D, trông nó giống như bị lõm xuống (giống textbox) |
Đối với nhãn, ta cũng có thể sử dụng anchoring để chỉ định vị trí nhãn trên form khi ta resize form.
Trong lập trình Visual, mọi đối tượng đều có sự kiện cho riêng nó, tuy nhiên đối với nhãn, ta thường không sử dụng sự kiện vì nhãn chỉ có chức năng thông dụng là hiển thị một câu thông báo hay kết quả ra màn hình. Vì vậy ở đây ta cũng không xét đến các sự kiện của nó.
a) Dùng cửa sổ form ta đã làm ở phần button, thêm vào 1 label để hiển thị các giá trị khi ta click vào các button. Giá trị hiển thị ở đây gồm thông tin về màu nền và tên của button được click. Bạn có thể sử dụng anchoring để thiết lập kích thước và vị trí của label khi bạn resize form.
Với các thuộc tính:
Label | Name Text |
lblMsg Bỏ trắng |
Và dưới đây là source code:
private void btnXanh_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Blue;
string msg = “”;
msg = msg + “Màu nền form: ” + this.BackColor.ToString()+”\n”;
msg = msg + “Button click: ” + btnXanh.Text;
lblMsg.Text = msg;
}
private void btnDo_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Red;
string msg = “”;
msg = msg + “Màu nền form: ” + this.BackColor.ToString()+”\n”;
msg = msg + “Button click: ” + btnDo.Text;
lblMsg.Text = msg;
}
private void btnMacDinh_Click(object sender, System.EventArgs e)
{
this.BackColor = Color.Empty;
string msg = “”;
msg = msg + “Màu nền form: ” + this.BackColor.ToString()+”\n”;
msg = msg + “Button click: ” + btnMacDinh.Text;
lblMsg.Text = msg;
}
Giải thích: Các hàm sự kiện này ta đã giải thích ở phần button rồi nên ở đây tôi chỉ giải thích các phần mới (phần in đậm).
Đầu tiên ta khai báo 1 biến msg và khởi gán bằng khoảng trống
string msg = “”;
this.BackColor.ToString(): Trong lập trình visual, đối với thuộc tính, ta có thể vừa lấy (get) và vừa gán (set) giá trị cho thuộc tính của đối tượng (cũng có trường hợp một số thuộc tính chỉ cho gán hoặc chỉ cho lấy giá trị mà thôi). Trong trường hợp này, thuộc tính BackColor cũng là một đối tượng nên ta không thể cộng đối tượng vào một chuỗi được mà ta phải đổi nó ra chuỗi (phương thức ToString())
This.BackColor: là lấy (hoặc gán) màu của (cho) đối tượng this.
btnMacDinh.Text: lấy (hoặc gán) text trên button btnMacDinh.
lblMsg.Text: gán (hoặc lấy) text vào (của) label lblMsg.
Chú ý:
Khi bạn mới bắt đầu chạy thì label sẽ trống không. Điều này đúng vì các sự kiện ghi dữ liệu lên nhãn (label) chỉ có hiệu lực một khi bạn click chuột lên 1 trong 3 button mà thôi. Để khi mới khởi động mà ta cũng có dữ liệu xuất lên trên nhãn thì ta phải viết thêm một sự kiện cho form: đó là sự kiện form_load.
private void frmMauNen_Load(object sender, System.EventArgs e)
{
string msg = “”;
msg = msg + “Màu nền form: ” + this.BackColor.ToString()+ “\n”;
msg = msg + “Button click: None”;
lblMsg.Text = msg;
}
b)
Textbox là đối tượng để nhập văn bản vào. Đây cũng là một trong những control thông dụng nhất trong lập trình visual.
Cũng giống như button và label, textbox cũng có những thuộc tính gần giống với thuộc tính của 2 control mà ta đã được học qua. Dưới đây là bảng những thuộc tính thông dụng nhất của textbox:
Tên Thuộc tính |
Giá Trị |
Diễn giải |
MaxLength | integer | Chiều dài tối đa dữ liệu nhập (ký tự) |
Multiline | True False |
Cho hay không cho textbox cao lên để cho phép nhập nhiều dòng. |
PasswordChar | character | Nếu bạn muốn textbox này là 1 password field thì bạn chỉ cần chỉ định character mà bạn muốn hiển thị khi bạn nhập password vào thuộc tính này. |
ReadOnly | True False |
Cho hay không cho phép nhập liệu vào textbox này. |
RightToLeft | Yes No |
Yes – Nếu bạn muốn canh lề phải dữ liệu nhập. |
ScrollBar |
Thuộc tính này chỉ có tác dụng khi bạn chọn Multiline= True NoneKhông có thanh cuộn.HorizontalChỉ có thanh cuộn đứng.VerticalChỉ có thanh cuộn ngang.BothCó cả 2 thanh cuộn đứng và ngang.WordWrap
Thuộc tính này chỉ có tác dụng khi bạn chọn Multiline= TrueTrue
FalseTrue – Nếu bạn muốn khi nhập liệu vào textbox thì nó sẽ tự động xuống dòng nếu như hết hàng.
Cũng như label, Textbox thường chức năng chính là để nhập liệu nên nó cũng ít khi phải sử dụng các sự kiện nên ở phần này ta cũng không bàn về các sự kiện của textbox.
a) Hãy tạo một project có tên TextBox và tạo giao diện nhập mới 1 sinh viên giống như hình dưới. Ví dụ này chỉ giới thiệu về cách thiết kế giao diện, không có các xử lý sự kiện.
Với các thuộc tính:
GroupBox | Name Text ForeColor |
grpThongTinCaNhan Thông Tin Cá Nhân Đỏ sậm |
Label | Name Text ForeColor |
Mặc định Mã Số Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Họ và Tên Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Ngày Sinh Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Nơi Sinh Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Địa Chỉ Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Số ĐT Xanh dương (blue) |
Label | Name Text ForeColor |
Mặc định Mã Số Xanh dương (blue) |
TextBox | Name | txtMaSV |
TextBox | Name | txtHovaTen |
TextBox | Name | txtNgaySinh |
TextBox | Name | txtNoiSinh |
TextBox | Name | txtDiaChi |
TextBox | Name | txtSoDT |
TextBox | Name | txtEmail |
Button | Name Text |
btnLuu Lưu |
Button | Name Text |
btnHuỷ Huỷ |
Button | Name Text |
btnThoat Thoát |
Lưu ý:
Các đối tượng label:
font-name: tahoma
font-size: 10px
font-weight: bold
Các đối tượng textbox
font-name: tahoma
font-size: 10px
font-weight: normal
b) Hãy tạo một project có tên là TextArea và tạo giao diện form cho 1 ứng dụng soạn thảo văn bản đơn giản giống như hình dưới. Ví dụ này cũng chỉ để giúp bạn tạo giao diện mà thôi, không có các xử lý.
với các thuộc tính sau:
From | Name Text |
frmEditor Chương Trình Soạn Thảo Văn Bản |
Button | Name Text |
btnLuuFile Lưu File |
Button | Name Text |
btnMoFile Mở File |
Textbox | Name | txtEditor |
2 button sử dụng
font: tahoma
size: 10pt
weight: bold
Textbox sử dụng
font: tahoma
size: 12pt
weight: normal
Tạp Chí TRITHUCSANGTAO.VN