chương I Mục đích: tìm hiểu vể các loại form, điều khiển, không gian tên cho phép tạo nên ứng dụng chạy trên desktop. Kiến thức: − Không gian tên − Thực đơn Project − Các loại form − Các thuộc tính và phương thức của form I. GIỚI THIỆU WINDOWS FORMS Dùng tạo ứng dụng giao diện Windows chạy trên máy để bàn có cài. Không gian tên − System.Form: cung các chức năng tạo các control, thanh công cụ, thanh thực đơn, trình bày dữ liệu liên kết, kiểm tra dữ liệu nhập, sử dụng các cửa sổ hội thoại có sẵn của windows.Drawing: cung cấp chức năng cơ bản về đồ họa dùng định dạng form.Data: cung cấp chức năng trình bày và thao tác dữ liệu trong ADO.Xml: xử lý, trình bày dữ liệu dạng XML Để sử dụng các không gian tên khác, chọn thực đơn Project/ Add Reference Hình 1.
Thực đơn Project Khi tạo mới project, đối tượng Form.Form1 được tạo ra gồm 3 phần (3 file): 1.cs: khi tạo giao diện sẽ phát sinh mã lệnh trong file này.cs: chứa mã lệnh do bạn tạo ra. Khi tạo biến cố cho một điều khiển trên form thì cũng phát sinh khai báo này trong Designer. Vì vậy nếu xóa đoạn mã của biến cố trong file .cs thì lỗi có thể phát sinh, trừ khi bạn xóa phần khai báo của chúng trong Designer.Resx: được tạo ra khi bạn tạo biến hay phương thức(không nên thay đổi trong file này, dễ gây lỗi chương trình khó sửa) Các thực đơn chính: − Project/Add Windows Form: thêm form mới. − Project /Add Class: thêm class.
− Project /Add New Item: thêm đối tượng mới. − Project /Add Exsiting Item: thêm đối tượng có sẵn. − Project /Exclude From Project : gỡ đối tượng khỏi project nhưng không xóa file trong thư mục ứng dụng. − Project /Delete: gỡ đối tượng khỏi project và xóa file trong thư mục ứng dụng.
Thanh công cụ (Toolbox) Gồm các nhóm điều khiển (controls) sau: − Common Control: TextBox, Button, ComboBox, ListBox, TreeView… − Menus và Toolbars: tạo thực đơn − Dialogs: các controls làm việc với file, font, color… − Printing: in − Data: thao tác dữ liệu trong ADO.NET − Components: làm việc với hệ thống và kiểm soát dữ liệu nhập. − Containers: các controls chứa các controls khác. − Crystal Report: nhúng đối tượng Crystal Report. CÁC LOẠI FORMS Có 3 dạng chính: − MDI Form: dùng đặt các form khác bên trong − Child Form: form con đặt trong MDI form − Normal Form: không nằm trong MDI form 1.
MDI Form Dùng đặt các form khác bên trong. Có thể thực hiện khi thiết kế giao diện hoặc dùng code. − Cách 1: khi thiết kế giao diện, gán thuộc tính IsMdiContainer =true, Form1 sẽ chuyển màu xám.2 − Cách 2: Dùng code Ví dụ 2: khởi tạo form2, khai báo form2 là MDIForm Phương thức Show dùng mở form (nạp form). Trong code trên, form2 sẽ là dạng form chứa (có nền xám) khi được gọi.3 Ví dụ 3: code tạo mới, khởi tạo form dạng MDI 2.
Child Form Là form con đặt trong MDI form. − Thuộc tính MdiParent: không xuất hiện trong cửa sổ thuộc tính nên phải dùng code. Ví dụ 4: khai báo form3 là form con của form1, mở form3 Chú ý: không dùng phương thức ShowDialog để mở childform Khi click nút Form3 sẽ được form3 nằm trong form1: Hình 1. Normal Form Là dạng form bình thường (đã học).
Sau khi tạo form thì code mở form như sau: Ví dụ 5: dùng Show Ví dụ 6: dùng ShowDialog, form mở dạng modal, không cho phép bạn chuyển sang làm việc với form đã mở trước đó trừ khi form modal đóng lại. Ví dụ 7: dùng code tạo mới và khởi tạo form. Tạo biến cố click lên form. CÁC THUỘC TÍNH VÀ BIẾN CỐ VÀ PHƯƠNG THỨC CỦA FORM 1.
Các thuộc tính − Name : dùng để nhận dạng duy nhất của form trong project. − Text: dùng để trình bày chuỗi trên thanh tiêu đề. − ShowIcon: dùng hiện biểu tượng chương trình, hình được chọn trong thuộc tính Icon − ShowInTaskbar: có cho hiển thị trên taskbar hay không. − Opacity: chọn mức độ trong suốt của form để thấy được các biểu tượng của desktop.
− BackColor: màu nền form. − ForeColor: màu chữ form. − StartPosition: vị trí nạp form trên màn hình. − WindowsState: nạp form ở một trong ba trạng thái: normal; minimized; maximized.
− ControlBox: có cho hiển thị controlbox hay không. − AcceptButton: chọn nút mặc định được kích hoạt khi nhấn Enter. − CancelButton: chọn nút mặc định được kích hoạt khi nhấn ESC. − MdiParrent: chỉ định form cha.
Các biến cố của form − Load: xảy ra trước khi form được hiển thị lần đầu. − Click: xảy ra khi click lên form. − FormClosed: xảy ra khi form đã đóng − FormClosing: xảy ra khi form đang đóng, thường sử dụng để người dùng xác nhận có chắc chắn đóng form. − Activated: xảy ra khi form được kích hoạt bằng mã hoặc do tác động của người dùng.
− KeyPress: xảy ra khi một phím được nhấn.KeyPreview=True) − Resize: xảy ra khi kích thước form thay đổi. Các phương thức − Close: dùng đóng form, nếu form được đóng là duy nhất thì chương trình tự động đóng. Cách gọi: this.Close − Hide: dùng che dấu form đang mở. Cách gọi: this.Hide − Activate: dùng kích hoạt form.
− Show: nạp form lên màn hình. Cách gọi: { Form frm=new Form (); frm.Show(); } − ShowDialog: nạp form lên màn hình dạng modal. Khi sử dụng ShowDialog để nap form lên màn hình mà trước đó có form đang kích hoạt, ta không thể quay trở lại form trước đó trừ khi kết thúc form này. Cách gọi: { Form frm=new Form (); frm.ShowDialog(); } BÀI TẬP CHƯƠNG I 1.
Có mấy cách để tạo một normal form? 2. Phân biệt 2 phương thức Show và ShowDialog Bài 1: Tạo MDI form gồm 2 button gọi 2 child form, trong đó child form1 được tạo sẵn, child form2 được tạo mới khi được gọi. Chương II CÁC ĐIỀU KHIỂN THÔNG THƯỜNG Tóm tắt chương II Mục đích: tìm hiểu vể các loại điều khiển thông thường bao gồm Label, Linklabel, Textbox, Combobox, Listbox, Button, Checkbox, Radiobutton. Kiến thức: − Nhóm Label, Textbox − Nhóm Combobox, Listbox − Nhóm Checkbox, Radiobutton − Button Hầu hết các điều khiển (control) đều có chung các thuộc tính sau: BackColor, ForeColor, Text, Name, Visible (che dấu/hiển thị), Locked (khóa không cho di chuyển trên form.
Và có chung các biến cố sau: Click, MouseMove, MouseUp, MouseDown, Move, Resize. NHÓM LABEL, TEXTBOX 1. Label Trình bày tiêu đề trên các điều khiển. Thuộc tính text (chuỗi hiển thị).
− LinkLabel: Là label cho phép kích hoạt đến địa chỉ internet hay email. − Thuộc tính LinkArea: xác định giới hạn chuỗi làm liên kết.1 Khi chạy sẽ thấy: Hình 2.2 − Các biến cố: LinkClicked, DoubleClick. Khi clich vào link, sẽ mở trang liên kết. TextBox Dùng nhập dữ liệu.
-Các thuộc tính thường dùng: Text (chuỗi hiển thị), Enabled (trạng thái hoạt động), Maxlength (độ dài chuỗi tối đa), Multiline (được tràn xuống dòng mới nếu chuỗi quá dài),Scrollbar (có thanh trượt). -Biến cố: TextChange. NHÓM COMBOBOX, LISTBOX Dùng trình bày danh sách phần tử cho phép người sử dụng chọn một hay nhiều phần tử trong danh sách đó 1. ComboBox Dùng trình bày danh sách phần tử là chuỗi đối tượng , gồm giá trị và nhãn có thể thay đổi được hay thêm mới phần tử.1 Các thuộc tính, phương thức : Bảng 2.1 Thuộc tính Mô tả DropDownStyle kiểu trình bày danh sách.
DropDown cho phép thêm mới chuỗi. DropDownList chỉ cho chọn trong danh sách. Simple dạng danh sách. Items danh sách các phần tử của danh sách.
SelectedItem gán hay lấy giá trị của phần tử đang chọn. SelectedIndex gán hay lấy giá trị chỉ mục ứng với phần tử đang chọn. Phương thức Mô tả Add("chuỗi") Thêm một mục giá trị là "chuỗi" ToString() Trả về chuỗi ký tự được chọn 1.1 Tạo ComboBox và danh sách các phần tử khi thiết kế giao diện: click Hình 2.2 Tạo danh sách các phần tử từ mảng một chiều Ta tạo mảng rồi gán cho thuộc tính DataSource của Combobox Chú ý: thêm using System.3 Khai báo và khởi tạo đối tượng ComboBox bằng code 1.3 Truy cập danh sách − Thêm mục vào ComboBox : <Ten_ ComboBox >.Add ("Chuỗi") − Lấy giá trị một mục đang chọn: <Ten_ ComboBox >. ListBox Dùng để hiển thị một danh sách các lựa chọn.1 Các thuộc tính, phương thức : Bảng 2.2 Thuộc tính Mô tả Items Các mục giá trị trong ListBox SelectedItem Gán hay lấy giá trị của phần tử đang chọn SelectionMode Cho phép chọn một hay nhiều phần tử một lúc Sort Sắp thứ tự danh sách Phương thức Mô tả Add("chuỗi") Thêm một mục giá trị là "chuỗi" ToString() Trả về chuỗi ký tự được chọn MouseClick Click chọn một mục 2.2 Tạo ListBox: Ví dụ: * Khởi tạo một ứng dụng Windows Forms Application, như sau: Hình 2.5 * Yêu cầu: - ListBox lstWeb chứa các giá trị: + Tuổi trẻ, Thanh niên, VNExpress, Dân trí, Công an.
-Hướng dẫn: vào thuộc tính Items tạo danh sách các website 2.3 Truy cập danh sách − Thêm mục vào ListBox : <Ten_ ListBox >.Add ("Chuỗi") − Lấy giá trị một mục đang chọn: <Ten_ ListBox >.ToString() * Cải tiến ví dụ trên: Ta có thể dùng code đưa các giá trị của lstWeb trong biến cố Form1_Load. Thiết kế lại form như hình 2.6 + Nhắp đúp chuột vào nền form, rồi gõ đoạn code this.SelectedItem = "Tuổi trẻ"; - Nhắp đúp vào button Ok rồi thêm đoạn code sau: this.Text = "Bạn đã chọn website "; this.ToString(); - Nhắp đúp vào button Reset rồi thêm đoạn code sau: this. NHÓM CHECKBOX, RADIOBUTTON 1. CheckBox Cho phép người dùng chọn hoặc không chọn.3 Thuộc tính Mô tả Checked Không có dấu check (False) / Có dấu check (True) Biến cố Click Click chọn một điều khiển RadioButton Ví dụ 1: duyệt các điều khiển trên form, nếu checkBox nào được chọn thì thông báo ra.7 Ví dụ 2: sửa ví dụ 1, khi chọn mục “Tờ báo” thì xuất hiện danh sách báo tờ: sử dụng biến cố CheckChanged Hoặc biến cố click Khi chọn mục “Tờ báo” thì xuất hiện danh sách báo tờ: Hình 2.
RadioButton Dùng để chọn một trong các lựa chọn trong danh sách.4 Thuộc tính Mô tả Checked Không có dấu chọn (False) / Có dấu chọn (True) Biến cố Click Click chọn một điều khiển RadioButton Ví dụ: Hình 2.9 Hướng dẫn: sử dụng thuộc tính checked của RadioButton, và hàm ToLower(), ToUpper(). Ví dụ: string hoten=this. BUTTON Dùng để thực thi lệnh. Cho phép người sử dụng dùng chuột để nhấn, phím Enter hay phím Spacebar nếu điều khiển này đang có focus.5 Thuộc tính Mô tả Text Chuỗi hiển thị trên Button Biến cố click Thực thi lệnh Có thể gán tên Button cho thuộc tính AcceptButton hay CancelButton của form để cho phép người dùng nhấn phím Enter hoặc Esc thay thế cho nút.12 BÀI TẬP CHƯƠNG II 1.
Trong các điều khiển label, textBox , thuộc tính nào chứa chuỗi hiển thị? 2. Trong các điều khiển ComboBox , ListBox , thuộc tính nào cho gán hay lấy giá trị của phần tử đang chọn? 3. Nêu cú pháp để thêm phần tử vào ComboBox , ListBox 4.