Windows Forms – Phần 4

Mọi ứng dụng Window cho phép người dùng click phải và hiện lên một

menu theo ngữ cảnh. Nó có nghĩa là các sự chọn lựa menu được dựa vào đối

tượng, hay ngữ cảnh , người dùng đã chọn. Các menu ngữ cảnh cho phép

ứng dụng biểu thị thông tin thêm vào hay các chọn lựa người dùng.

Các menu theo ngữ cảnh có thể được thêm vào các ứng dụng Windows

Forms rất dễ dàng. Chúng ta sẽ thêm một menu theo ngữ cảnh vào cửa sổ

thực thể dữ liệu của chúng ta, các chọn lựa Savevà Cancelkhi người dùng

click phải ở bất kỳ đâu trên Form.

pdf13 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 2087 | Lượt tải: 5download
Tóm tắt nội dung Windows Forms – Phần 4, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 tự động hiển thị ContextMenu khi 
ngừơi dùng click phải. Nó sẽ hiển thị ContextMenu tại vị trí người dùng 
click phải. Chú ý rằng thuộc tính này có thể được cập nhật trong thời gian 
chạy. Thật là quan trọng để ghi chú rằng thuộc tính này là một thành viên 
của lớp Control, có nghĩa là tất cả control Windows Forms đều có thuộc tính 
này. 
Cài thuộc tính ContextMenu của Form1 vào contextMenu1 sử dụng cửa sổ 
properties. Một combo box sẽ hiển thị các đối tượng ContextMenu hiện tại 
để chọn từ trên form. Multiple ContextMenus có thể được thêm vào một 
form, mặc dù chỉ một được gán vào form tại một thời điểm. 
Chạy ứng dụng và click phải bất kỳ đâu trên trên form để thấy menu ngữ 
cảnh hiển thị hai tuỳ chọn Save và Cancel. 
Thực thi ứng dụng với các menu 
Dialogs 
Dialogs là một kiểu đặc biệt của Form để lấy thông tin người dùng và tương 
tác với ngừơi dùng trong các ứng dụng Window. Có một tập các hộp dialog 
định nghĩa trước để lấy thông tin như vị trí tập tin, màu sắc, và cài đặt máy 
in. Một ứng dụng tuỳ biến thường sử dụng hộp thoại dialog để thuận tiện 
chọn dữ liệu từ endusers. 
Tạo một hộp dialog thì rất giống với tạo một Form chuẩn. Trên thực tế, cùng 
tiến trình xử lý được dùng để thêm vào một dự án Visual studio.NET. Sự 
khác chính là bản liệt kê FormBorderStyle, nó phải được cài là Fixel Dialog. 
Nó tạo cửa sổ không lớn và là nguyên nhân nó giống với hộp dialog 
Window. Nó cũng là một thực hành Window chuẩn để huỷ ControlBox, 
MinimizeBox, và MaximizeBox từ một hộp dialog, vì thế các thuộc tính này 
nên được cài là false trong cửa sổ properties. 
Bất kỳ control Windows Forms chuẩn nào cũng có thể tồn tại trên một hộp 
dialog. Bề mặt thiết kế trong Visual studio.NET được dùng để thiết kế các 
Form chuẩn, và các tuỳ chọn giống nhau có thể dùng cho các nhà phát triển. 
Modal vs. Modeless 
Khi chúng ta muốn hiển thị hộp dialog, có hai chọn lựa: modal hay 
modeless. Hai khái niệm này chỉ cách dialog tương tác với ứng dụng. Một 
modal dialog ngăn chận các luồng hiện tại và yêu cầu người dùng trả lời vào 
hộp dialog trứơc khi tiếp tục với ứng dụng. Một Modeless dialog thì giống 
một cửa sổ chuẩn hơn. 
Dialog Box Results 
Thường rất quan trọng để hiểu cách người dùng đóng một hộp dialog. Một 
ví dụ điển hình đó là một dialog File Open. Nếu người dùng chọn một tập 
tin thì hành động tiếp theo cho ứng dụng là load tập tin đó, tuy nhiên nếu 
người dùng click nút Cancel hay đóng hộp dialog thì ứng dụng sẽ không 
load bất kỳ tập tin nào. 
Bí quyết để hiểu cách người dùng tương tác với một hộp dialog là bảng liệt 
kê DialogResult. Các giá trị cho bảng liệt kê này như sau: 
Value Description 
Abort Giá trị này thì được trả về khi một người dùng chọn một nút có 
nhãn Abort. Trong trường hợp này, người dùng muốn huỹ thao tác 
hiện tại và không lưu sự thay đổi. 
Cancel Giá trị này thường được trả về khi một người dùng chọn một nút 
Value Description 
có nhãnlà Cancel, đóng hộp thoại bằng cách nhấn nút "x", hay nấn 
phím Esc. Người dùng muốn huỹ các thay đổi và trả về trạng thái 
trước khi mở hộp thoại. 
Ignore Giá trị này được trả về khi một người dùng chọn nút có nhãn 
Ignore. Giá trị này có thể được sử dụng khi ứng dụng cảnh báo 
người dùng về các điều kiện xảy ra lỗi, nhưng người dùng chọn 
lệnh Ignore. 
No Giá trị này thường được trả về khi một người dùng chọn nút có 
nhãn No. Nó thì bình thường khi hộp thoại được dùng để hỏi 
người dùng một câu hỏi es/no. 
Yes Giá trị này thường được trả về khi một ngừời dùng chọn nút có 
nhãn Yes. Nó là con trỏ đếm đến kết quả trả về Nó và được dùng 
trong cùng tình huống. 
None Không có gì được trả về từ hộp thoại. 
OK Giá trị này đươc trả về khi một người dùng chọn nút có nhãn OK. 
Nõ thì bình thường trong các hộp thoại và các tin cảnh báo nơi 
Value Description 
nào quan trong cho người dùng thừa nhận thông tin. 
Retry Giá trị này được trả về khi một người dùng chọn nút có nhãn 
Retry. Nó có ích khi một thao tác không thành công sẽ thành công 
nếu được thử lại. 
Để truy cập vào giá trị này bạn phải sử dụng thuộc tính DialogResult của 
Form. Thuộc tính này là public và có thể truy cập ngay khi người dùng đã 
đóng hộp dialog. 
Mở một Dialog 
Có hai cách để mở một hộp dialog, một là hiển thị modal và một là hiển thị 
modeless. Để hiện một dialog như một modal dialog, thì sử dụng phương 
thức sau: 
DialogResult Form.ShowDialog() 
Phương thức này là một bộ phận của lớp Form. Phương thức này có thể chấp 
nhận không có tham số hoặc một đối tượng Form như một tham số. Đối 
tượng Form này đại diện cho ower của hộp dialog, hộp này có ích bởi vì tất 
cả đối tượng Form có một con trỏ quay về cha mẹ của chúng, cho phép một 
hộp dialog có thể lấy hoặc cài dữ liệu vào cha mẹ của nó. Còn nếu không 
tham số thì truyền các mặc định cửa sổ hiện tại vào cha mẹ nó. 
Chú ý phương thức này trả về một giá trị bảng liệt kê DialogResult. Phương 
thức này ngăn chặn sự thực thi, và không có mã nào sau khi nó thực thi cho 
đến khi người dùng đóng hộp dialog. Khi sự việc này xảy ra thì 
DialogResult mã được trả về và ứng dụng có thể tiếp tục xử lý. Đoạn mã sẽ 
như sau: 
if (aDialogObject.ShowDialog() == DialogResult.Yes) 
{ 
 //User selected Yes 
 //Use the properties of the aDialogObject to perform actions 
} 
else 
{ 
 //User selected No – do not perform action 
} 
Đoạn mã trên hiển thị hộp dialog để hỏi ngừơi dùng nếu họ muốn lưu tập tin 
hiện tại. Nếu ngừời dùng chọn Yes thì đoạn mã sẽ thả vào khối if nếu chọn 
No thì khối else sẽ được thực thi. 
Common Dialogs 
.NET Framework cung cấp truy cập đến những common dialog này thông 
qua các lớp sau. Mỗi lớp này tượng trưng một common dialog và có thể 
được hiển thị như một hộp dialog. Tất cả lớp này tồn tại trong 
System.Windows.Forms namespace: 
Class Description 
ColorDialog Nó cho phép một ngừơi dùng chọn một màu từ bảng 
màu. 
FontDialog Hộp dialog này hiển thị tất cả font hiện có trên hệ thống 
và cho phép người dùng chọn một cái để dùng trong 
ứng dụng. 
OpenFileDialog Cho phép một người dùng mở một tập tin sử dụng hộp 
thoại mở tập tin chuẩn. 
SaveFileDialog Nó cho phép người dùng chọn một tập tin, thư mục hay 
địa chỉ mạng để lưu dữ liệu của ứng dụng. 
PageSetupDialog Nó cho phép người dùng cài kích cỡ trang, canh lề, và 
các đặc tính in ấn khác. 
PrintDialog Nó cho phép người dùng cài định dạng trang hiện hành 
và các đặc tính in ấn qua hộp dialog thuộc tính in ấn 
chuẩn. 
Class Description 
PrintPreviewDialog Nó hiển thị một tài liệu như nó xuất hiệnk trên máy in 
đang chọn với các cài đặt trang hiện hành. 
Tất cả lớp này thừa kế từ lớp System.Windows.Forms.CommonDialog, ngoại 
trừ lớp PrintPreviewDialog. Lớp System.Windows.Forms.CommonDialog 
cung cấp các chức năng cơ bản yêu cầu hiện một hộp combox dialog. Mọi 
lớp common dialog được hiển thị sử dụng phương thức ShowDialog(), 
nhưng chúng chứa các thuộc tính tuỳ biến sử dụng để định hình và hỏi chức 
năng tuỳ biến của chúng. 
ColorDialog 
Dialog này hiển thị hộp dialog màu sắc chung. Nó hữu ích khi một ngừơi 
dùng được cho phép định dạng nền của một Form hay control, và bạn muốn 
cung cấp chúng như một cách để chọn màu ưu tiên. 
Thuộc tính chính được dùng với lớp này là thuộc tính Color. Nó chứa màu 
sắc chọn lựa khi hộp dialog trả điều klhiển cho ứng dụng. Thuộc tính này là 
một cấu trúc màu, chúng có lợi bởi vì .NET framework cần cấu trúc này 
trong các phương thức và thuộc tính khác. 
Một tiện lợi khác là nó cho phép người dùng định nghĩa và sử dụng một tập 
màu sắc custom-defined. Đặc trưng này có thể hiện bằng mặc định, nhưng 
có thể bị ẩn bằng cách cài thuộc tính AllowFullOpen bằng giá trị false. 
Như các hộp dialog khác, giá trị trả về từ ShowDialog() phải được xem xét 
để hiểu cách người dùng thoát khỏi dialog. Đây là một đoạn mã nhỏ sử dụng 
lớp này: 
ColorDialog aClrDialog = new ColorDialog(); 
aClrDialog.AllowFullOpen = false; 
aClrDialog.Color = this.BackColor; 
if (aClrDialog.ShowDialog() == DialogResult.OK) 
{ 
 this.BackColor = aClrDialog.Color; 
} 
aClrDialog.Dispose(); 
Chú ý rằng bạn có thể sử dụng bất kỳ hộp dialog nào như ví dụ này, hay bạn 
có thể thêm thành phần vào một Form trong Visual studio.NEY. Đoạn mã sẽ 
rất giống, nhưng lớp dialog sẽ có giá trị cho mọi phương thức trong Form, 
và tất cả thuộc tính này có thể được cài tại thời gian thiết kế trong cửa sổ 
Properties. 
FontDialog 
Lớp này cho phép một người dùng chọn một kiểu font, size, và color. Nó rất 
hữu ích trong các ứng dụng, nhưng nó cũng có thể được dùng để cho phép 
người dùng định dạng bằng cách chọn kiểu font để hiển thị trong nhập liệu 
và màn hình báo cáo. 
Lớp này chứa một số lượng lớn các thuộc tính mà có thể được cài để định 
hình các chức năng của hộp dialog : 
Property Description 
Color Thuộc tính này lấy hay cài màu sắc font được chọn. Chú ý 
thuộc tính ShowColor phải là true để nó hợp lệ. 
Font Đây là thuộc tính quan trọng nhất củ hộp dialog này. Nó trả về 
cấu trúc Font mô tả việc chọn font của người dùng. Nó có thể 
sau đó được áp dụng vào một đối tượng Control hay Form để 
thay đổi font. 
MaxSize Lấy và cài kích cỡ điểm lớn nhất mà mọt ngừơi dùng có thể 
chọn trong hộp dialog. 
MinSize Lấy hay cài kích cỡ điểm nhỏ nhất mà một người dùng có thể 
chọn trong hộp dialog. 
Property Description 
ShowApply Thuộc tính Boolean có thể được cài là true để hiển thị một nút 
Apply. Nếu nó được dùng, một bộ điều khiển sự kiện được viết 
để bắt được sựu kiện Apply khi nó xảy ra. Bởi vì khi người 
dùng chọ Apply, control vẫn không trả về cho ứng dụng, 
nhưng bộ điềukhiển sự kiện có thể sau đó xử lý font thay đổi 
trong ứng dụng. 
ShowColor Thuộc tính Boolean có thể được cài là true để hiển thị một 
danh sách màu. Nó cho phép ngừơi dùng chọn màu của font 
cũng như kiểu hay kích cỡ. 
ShowEffects Thuộc tính Boolean có thể được cài là true để cho phép ngừời 
dùng chỉ định các tuỳ chọn strikethrough, underline, và text 
color. 

File đính kèm:

  • pdf61_2265.pdf