Các điều khiển thông dụng

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 75 - 81)

Kiu 2: Lp cho n khi iu kin là FALSE

11. Làm việc với UserForm và các thành phần điều khiển

11.3. Các điều khiển thông dụng

Theo mặc định, trên Toolbox có sẵn một số điều khiển thông dụng trong thẻ Control, những điều khiển này đáp ứng được hầu hết nhu cầu thiết kế giao diện thông thường trên UserForm.

Trong những phần trước đã nhắc nhiều đến việc sử dụng các điều khiển trên Toolbox nhưng chưa có tính hệ thống vì vậy phần này sẽ trình bày những nội dung cơ bản để có thể sử dụng một cách hiệu quả các điều khiển này.

Hình II-34: Các điều khiển cơ bản theo mặc định trong VBA IDE

Nút lnh (Command Button)

Command Button thường được dùng để thực hiện một quyết định nào đó từ phía người dùng (thông qua việc kích chuột vào Command Button hoặc nhấn Enter).

Command Button nên có thuộc tínhCaption (tiêu đề) vàPicture (hình ảnh) phản ánh đúng tính năng mà nó đảm nhận. Sự kiện hay được gọi khi sử dụng Command Button là sự kiệnClickhoặcDblClick(kích đúp chuột).

Để thay đổi vị trí của Command Button trong khi chạy chương trình, sử dụng phương thứcMove

Tên_Command Button.Move [Left ], [Top], [Width], [Height]

Trong đó các tham số thể hiện vị trí góc trái trên (left, top) và kích thước (Width, Height) mới của Command Button sau khi di chuyển.

Để thiết lập trạng thái nhận lệnh (nhận tiêu điểm – focus), sử dụng phương thức SetFocus

Tên_Command Button.SetFocus

Các phương thứcMovevàSetFocusnhư trên không chỉ áp dụng đối với Command Button, mà còn được áp dụng với đa số các điều khiển khác.

H#p v$n bn (TextBox)

TextBox được dùng để nhập dữ liệu dạng văn bản (text) và nó được điều khiển bằng cách thiết lập những thuộc tính hay sự kiện hoặc sử dụng các phương thức phù hợp. Dưới đây là một số thành phần chính dùng để điều khiển TextBox:

Các thuộc tính dùng để thiết lập cách thức hiển thị cho TextBox

Thuc tnh M t Ghi ch

9 3

2

7 6

4 5

8 1

http://www.ebook.edu.vn

Text Nội dung văn bản chứa trong điều khiển. Kiểu String

TextAlign Cách thức hiển thị văn bản trong điều khiển Tham khảo Object Browser MaxLength Qui định độ dài tối đa của văn bản trong điều khiển

(Nếu đặt MaxLength=0, độ dài của văn bản là tuỳ ý)

Kiểu Long MultiLine Hiển thị nhiều dòng hay một dòng Kiểu Boolean ScrollBars Hiển thị thanh cuộn ngang hay dọc nếu nội dung

văn bản lớn hơn kích thước của điều khiển

Tham khảo Object Browser

Các phương thức hỗ trợ việc nhập văn bản vào TextBox

Phng thc M t Ghi ch

Copy Chép nội dung được đánh dấu trong điều khiển vào bộ nhớ đệm

Tham khảo trong Object Browser hoặc Help Cut Di chuyển nội dung được đánh dấu trong điều khiển vào bộ

nhớ đệm

Paste Chép nội dung từ bộ nhớ đệm vào điều khiển

Các sự kiện: thường dùng để xử lý khi có tác động lên TextBox, thường sử dụng hai sự kiện là:KeyPressvàChange. Sự kiện, về bản chất là một chương trình con dạng Sub và được tự động gọi ra tương ứng với tác động nào đó lên TextBox, ví dụ như bấm phím hay thay đổi nội dung. Sự kiệnChangeđược gọi khi nội dung văn bản trong TextBox bị thay đổi. Còn sự kiệnKeyPress được gọi khi có một phím được nhấn khi con trỏ đang nằm trong điều khiển. Sự kiệnKeyPress có một tham số làKeyAscii. Tham số này có kiểu Integervà chứa mã ASCII của phím được nhấn (để biết mã ASCII của các phím, tham khảo KeyCodeConstants trong Object Browser).

Nhãn (Label)

Label thường được sử dụng để hiển thị một văn bản ngắn gọn trên UserForm hoặc dùng kèm với một điều khiển nào đó trên UserForm với mục đích là giải thích ý định sử dụng cho điều khiển đó. Nội dung văn bản trong Label được thiết lập hoặc thay đổi thông qua thuộc tính Caption của nó. Tương tác với thuộc tínhCaption của Label cũng tương tự như đối với thuộc tínhCaption của tất cả các điều khiển khác và đã được trình bày ở các phần trước.

H#p ánh d%u (CheckBox)

CheckBox thường được sử dụng để lựa chọn thông tin phù hợp trong một danh sách các thông tin liên quan được liệt kê hoặc dùng để bổ sung nội dung cho một dữ liệu nào đó.

Điều khiển Label giải thích cho dữ liệu trong hộp văn bản ở dưới

Điều khiển Label hiển thị kết quả dạng văn bản ngắn

Để thiết lập hay đọc trạng thái của CheckBox (được chọn hay không được chọn), sử dụng thuộc tính Value. Thuộc tính này có kiểu Boolean, nếu giá trị của nó là Truethì có nghĩa là CheckBox được chọn, giá trị làFalsenghĩa là CheckBox không được chọn.

Ví dụ: tạo giao diện nhập dữ liệu và tính tổng các số từ 1 đến n với tùy chọn bằng CheckBox như sau:

Nếu không chọn CheckBox (không đánh dấu) thì tính tổng của các số từ 1 đến n.

Nếu chọn CheckBox (đánh dấu) thì chỉ tính tổng các số chẵn trong khoảng từ 1 đến n.

Thiết kế UserForm với các thành phần như hình dưới đây:

Mã lệnh cho thủ tục sự kiệnClickcho nút lệnhcmdTinhnhư sau:

Private Sub cmdTinh_Click() Dim i As Long

Dim so As Long

so = CLng(txtSo.Text) ' chuyen doi du lieu tu txtSo vao bien so Dim tong As Double

tong = 0

Dim buocnhay As Long ' buoc nhay cua bien chay

If chkChonsochan.Value Then ‘ xet lua chon chi tinh tong so chan buocnhay = 2

Else

buocnhay = 1 End If

For i = 0 To so Step buocnhay tong = tong + i

Next

lblKetqua.Caption = "Ket qua: " & Str(tong) ‘ hien thi ket qua End Sub

Nút tu& chn (OptionButton)

OptionButton thường được dùng để yêu cầu người dùng chọn một trong các thông tin được liệt kê sẵn. Để tạo nhóm các OptionButton, ta có thể đặt chúng trong một điều khiển khung

Label Name: lblSo

TextBox Name: txtSo

CheckBox

Name:chkChonsochan

Command Button Name: cmdTinh

Label

Name: lbKetqua

http://www.ebook.edu.vn

Để thiết lập trạng thái chọn hay không chọn cho OptionButton, sử dụng thuộc tính Value, thuộc tính này có kiểu Boolean. Nếu giá trị của nó là True thì có nghĩa là OptionButton đó được chọn, còn nếu giá trị là Falsethì OptionButton đó không được chọn. Ví dụ mã lệnh sau tương đương với việc người dùng chọn OptionButton tên làoptDAmoi

optDAmoi.Value=True

H#p danh sách (ListBox)

ListBox cho phép liệt kê một danh sách các giá trị để người dùng có thể quan sát và lựa chọn một hoặc một vài giá trị trong danh sách này.

Mỗi giá trị trong ListBox luôn có chỉ số (Index) và nội dung (Text).

Thuộc tính:

Thuc tnh M t Ghi ch

List Trả về danh sách các giá trị trong điều khiển Tham khảo Object Browser ListCount Trả về số lượng các giá trị trong danh sách Kiểu Long

ListIndex Trả về chỉ số của giá trị được chọn trong danh sách Kiểu Variant Text Trả về nội dung của giá trị được chọn Kiểu String Selected(i) Kiểm tra xem phần giá trị i có được chọn hay không. Kiểu Boolean

Phương thức:

Phng thc M t Ghi ch

AddItem Thêm một giá trị vào trong danh sách Tham khảo trong Object Browser hoặc Help

RemoveItem Xoá một giá trị khỏi danh sách Clear Xoá toàn bộ danh sách Ví dụ: tạo UserForm với ListBox như hình dưới:

Hai OptionButton phục vụ cho việc lựa chọn loại hình dự án. Người dùng chỉ có thể chọn một trong hai điều khiển này.

Mã lệnh cho sự kiện Initialize (sự kiện này được tự động gọi khi chương trình nạp UserForm vào bộ nhớ của máy tính) của UserForm như sau:

Private Sub UserForm_Initialize() lstDsMc.AddItem "Mat cat dau", 0 lstDsMc.AddItem "Mat cat L/4", 1 lstDsMc.AddItem "Mat cat L/2", 2 lstDsMc.AddItem "Mat cat 3L/4", 3 lstDsMc.AddItem "Mat cat cuoi", 4 End Sub

GỢI Ý Phương thức AddItem có hai tham số đều là tham số tuỳ chọn: tham số thứ nhất là nội dung của phần tử, tham số thứ hai là vị trí chèn phần tử trong danh sách.

Kết quả chạy chương trình như sau:

Để biết người dùng đã lựa chọn phần tử nào trong ListBox, viết mã lệnh cho sự kiệnClick của ListBox như sau:

Private Sub lstDsMc_Click()

‘Hiển thị giá trị được chọn lên tiêu đề của UserForm Me.Caption = lstDsMc.Text

End Sub

Kết quả khi người dùng chọn một giá trị trong ListBox:

UserForm: usfMc

ListBox: lstDsMc

Yêu cầu: khi chương trình hoạt động, trong ListBox sẽ có một danh sách các mặt cắt được thống kê ra.

http://www.ebook.edu.vn

H#p danh sách t' h*p (ComboBox)

Tương tự như ListBox, nhưng danh sách các giá trị được thể hiện theo kiểu hiện ra đầy đủ khi người dùng kích chuột vào. Ngoài ra điều khiển này còn cho phép người dùng nhập giá trị cần tìm vào, điều này giúp cho việc lựa chọn được nhanh hơn khi người dùng biết tên giá trị cần chọn trong danh sách và chiều dài của danh sách lại quá lớn.

Các thuộc tính và phương thức của ComboBox tương tự như ListBox.

Khung (Frame)

Frame cho phép nhóm các điều khiển trên UserForm lại theo chủ đề, giúp cho việc trình bày trên UserForm được rõ ràng và giúp cho người dùng dễ sử dụng chương trình. Frame còn được dùng để tập hợp các OptionButton thành một nhóm.

Khi tạo nhóm điều khiển trong Frame, nên tạo Frame trước rồi mới tạo các điều khiển thành phần trong nó (khi đó các điều khiển tạo sau sẽ được gắn và trong Frame).

Hình nh (Image)

Image cho phép hiển thị hình ảnh trên một vùng của UserForm. Sử dụng điều khiển này giúp cho việc minh họa dữ liệu cần nhập trở nên rõ ràng và dễ hình dung.

Để chèn hình ảnh vào trong điều khiển, sử dụng thuộc tínhPicture của nó.

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 75 - 81)

Tải bản đầy đủ (PDF)

(434 trang)