- Properties Window: cửa sổ chứa đựng những thuộc tính của một control nào đó, ví dụ Form1 có các thuộc tính như Text, StartPosition, ShowinTaskBar… Tiếp tục thực hiện ứng dụng…, tại Win
Trang 1ỦY BAN NHÂN DÂN TỈNH AN GIANG
(Ban hành theo Quyết định số: /QĐ-CĐN, ngày tháng năm 20
của Hiệu trưởng trường Cao đẳng nghề An Giang)
An Giang, 2019
Trang 2LỜI GIỚI THIỆU
“LẬP TRÌNH WINDOW 2” là mođul được bố trí sau môn học Lập trình window 1, v ới yêu cầu người học phải có kiến thức lập trình căn bản và kiến
th ức về ngôn ngữ lập trình C#
V ới chương trình môn học 90 giờ, cuốn giáo trình này cung cấp cho sinh viên cách th ức lập trình theo mô hình Server/Client cũng như các kiến thức về
l ập trình nâng cao trong windows
Cu ốn Giáo trình này bao gồm một số nội dung chính:
Bài 1: Visual Studio NET và các đối tượng
Bài 7 : Truy cập và xử lý cơ sở dữ liệu
Bài 8: Lập báo cáo với CrystalReport
Trong quá trình biên so ạn, mặc dù bản thân đã cố gắng hoàn thiện giáo trình nhưng không tránh khỏi những thiếu sót, hạn chế Mong được đồng nghi ệp và sinh viên đóng góp ý kiến để giáo trình ngày càng hoàn thiện hơn
An Giang , ngày tháng năm 20
Tham gia biên soạn
Trần Thị Kim Ngọc
Trang 34 Nội dung giáo trình
Bài 1: Visual Studio Net và các đối tƣợng 6
Trang 4I/ Tổng quan về ADO.NET 74
Bài 8: Lập báo cáo với CrystalReport 89
Trang 5GIÁO TRÌNH MÔ ĐUN Tên mô đun: LẬP TRÌNH WINDOW 2
Mã mô đun: MĐ 29
I Vị trí, tính chất, ý nghĩa và vai trò của mô đun:
- Vị trí: Mô đun này thuộc nhóm môn chuyên ngành, được bố trí sau các môn: Lập trình Window 1 Môn học này yêu cầu người học phải có kiến thức lập trình căn bản và kiến thức về ngôn ngữ lập trình C#
- Tính chất: Là môn học chuyên ngành bắt buộc Đây là mô đun chứa đựng kiến thức nền tảng về lập trình Windows Form, lập trình kết nối cơ sở dữ liệu
- Ý nghĩa và vai trò của mô đun: Mô đun này là nền tảng giúp người học xây dựng được một ứng dụng quản lý trên nền Windows Form
II Mục tiêu mô đun:
- Kiến thức: Trình bày được quy trình: Tạo các ứng dụng, tạo được các ứng
dụng cơ sở dữ liệu trên nền Windows Lập trình và sử dụng được các đối tượng của NET Tạo được ứng dụng cơ sở dữ liệu với các báo cáo bằng CrystalReport
Sử dụng được hệ thống registry và tập tin ini để lưu trữ thông tin chương trình Tạo ra các ứng dụng MDI
- Kỹ năng: Tạo các ứng dụng, tạo được các ứng dụng cơ sở dữ liệu trên nền Windows Lập trình và sử dụng được các đối tượng của NET Tạo được ứng dụng
cơ sở dữ liệu với các báo cáo bằng CrystalReport Sử dụng được hệ thống registry
và tập tin ini để lưu trữ thông tin chương trình Tạo ra các ứng dụng MDI
- Năng lực tự chủ và trách nhiệm: Hình thành kỹ năng làm việc cẩn thận, nghiêm túc
III Nội dung mô đun:
Số
TT Tên các bài trong mô đun
Thời gian (giờ) Tổng
số thuyết Lý
Thực hành, thí nghiệm, thảo luận, bài tập
Kiểm tra
1 Bài 1: Visual Studio Net và
Trang 6BÀI 1: VISUAL STUDIO NET VÀ CÁC ĐỐI TƢỢNG
Sau khi học xong bài học, người học có khả năng :
- Trình bày được cách tạo một Project dạng Form Application
- Trình bày được chức năng các cửa sổ của Visual Studio Net IDE
- Thiết kế và thay đổi các thuộc tính của form
- Vận dụng các control cơ bản trong thiết kế
Nội dung chính:
I/ LẬP TRÌNH VỚI VISUAL STUDIO.NET
Visual Studio NET Integrated Development Environment (IDE)
Cung cấp cho chúng ta những giao diện chung cho việc phát triển nhiều loại
dự án khác nhau trên nền tảng NET IDE cho phép khả năng thiết kế giao diện người dùng cho ứng dụng, viết mã lệnh, biên dịch, và kiểm lỗi cho ứng dụng Visual Studio NET cung cấp nhiều ngôn ngữ để phát triển ứng dụng trong bộ NET của Microsoft như: Visual Basic, Visual C#, Visual C++…
Tạo một dự án trong Visual Studio Net
Chạy ứng dụng Visual Studio 2008 từ thực đơn Start \ Program \ Microsoft
Visual Studio 2008 \ Microsoft Visual Studio 2008
Tạo mới ứng dụng bằng cách nhấn vào menu File \ New \ Project Cửa sổ tạo
mới Project xuất hiện
Hình 1.1: Cửa sổ New Project
Trang 7Trong cửa sổ New Project, Project Types hiển thị danh mục những kiểu
project mà chúng ta có thể tạo trong VS Chúng ta quan tâm tới hai loại project đó
là Visual C# và Setup and Deployment Trong khi Visual C# là kiểu dự án cho
phép tạo ra ứng dụng bằng ngôn ngữ C#, thì Setup and Deployment là kiểu project
để triển khai dự án đến người dùng cuối
Chọn Visual C# Windows tại Project Types
Ở cửa sổ Templates, một số mẫu ứng dụng có sẵn để giúp người phát triển nhanh chóng tạo ra ứng dụng phù hợp theo yêu cầu Có các kiểu project template sau cần chú ý nhất:
- Windows Application: được dùng để tạo những ứng dụng Windows
- Class Library: sử dụng để tạo ra những component sử dụng lại trong các
Đặt tên cho dự án đầu tiên là HelloWindow tại Name
Chọn thư mục lưu trữ dự án tại Location
Click OK
Màn hình dự án xuất hiện như sau:
Hình 1.2: Màn hình Form 1 khi tạo Project Window Form đầu tiên
Chúng ta quan tâm đến những cửa sổ sau:
Trang 8- Window Form: nơi sử dụng để thiết kế giao diện chương trình
- ToolBox: chứa đựng những controls được xây dựng sẵn Có nhiều tab trong cửa sổ ToolBox liệt kê những control theo những loại khác nhau
- Solution Explorer: liệt kê tên dự án, những file thiết kế, mã nguồn, … của ứng dụng
- Properties Window: cửa sổ chứa đựng những thuộc tính của một control nào đó, ví dụ Form1 có các thuộc tính như Text, StartPosition, ShowinTaskBar…
Tiếp tục thực hiện ứng dụng…, tại Window Form, click chuột phải, một popup Menu xuất hiện, trong đó có mục View Code, mục này cho phép xuất hiện cửa sổ soạn thảo mã lệnh điều khiển chương trình
Hình 1.3: Màn hình cửa sổ chọn view code
Cửa sổ mã lệnh chương trình hiển thị như sau:
Hình 1.4: Màn hình viết mã lệnh
Trang 9Tiếp tục thực hiện ứng dụng…, trở lại màn hình Window Form, double click vào Form1, và soạn thảo mã lệnh như sau vào hàm Form_Load() do chương trình khởi tạo
private void Form1 Load(object sender, EventArgs e)
{
MessageBox.Show(“Welcome to Window Form”);
}
Chọn menu Debug ->Start Debugging (hoặc nhấn F5) để chạy ứng dụng
Các thao tác trong Project:
Thêm một Form mới vào Project:
Tạo project
Cách 1 Vào menu Project | Add New Item … Cách 2 Chọn công cụ Add New Item trên thanh Standard Khai báo
- Categories: chọn Windows Forms
- Templates: chọn Windows Form
- Name: đặt tên Form Nhắp Add
Thêm một Form có sẵn vào Project:
Vào menu Project | Add Existing Item …
Chọn Form
Nhắp Add
Xóa bỏ một Form đang có trong Project:
Chọn Form cần gỡ bỏ (ở cửa sổ Solution Explorer)
Vào menu Edit | Delete
Lưu Form
Vào menu File | Save Form.cs
Ctrl + S
II/ THÊM VÀ ĐIỀU CHỈNH CÁC ĐIỂU KHIỂN
1/ Thêm các điều khiển
Có 4 cách để thêm một điều khiển vào Form Designer:
Di chuyển điều khiển từ Toolbox vào nơi chứa điều khiển trên Form
Chọn 1 điều khiển trên Toolbox và vẽ điều khiển trên Form
Chọn 1 điều khiển trên Toolbox và double-click trên Form
Double-click điều khiển trên Toolbox
Trang 10Hình 1.5: Màn hình giao diện thêm điều khiển vào Form Mỗi control sẽ được xác định bằng thuộc tính Name Thuộc tính này dùng để xác định control khi lập trình
Lưu ý: Cần đặt tên Name sao cho gợi nhớ
Control Tiếp đầu ngữ Biểu tƣợng
Textbox txt Ví dụ: txtHoTen, txtTuoi
Button btn Ví dụ: btnOK, btnCancel
Label lbl Ví dụ: lblThongBao
2/ Xóa điều khiển
Chọn điều khiển cần xóa và bấm phím Delete
3/ Điều chỉnh điều khiển
Thay đổi kích thước
- Chọn điều khiển, và drag chuột 1 góc muốn thay đổi
- Thay đổi giá trị Size của Height or Width ở Property Grid
Sắp xếp vị trí các điều khiển
- Dùng chuột và drag điều khiển đến vị trí muốn đặt trên Form
- Đặt thuộc tính Location của điều khiển ở Property Grid
- Sử dụng công cụ
Thay đối khoảng cách điều khiển với Layout Toolbar
Trang 114/ Các loại chứa điều khiển
Các loại chứa điều khiển như panel, GroupBox Và cách thêm các loại chứa điều khiển tương tự như thêm một điều khiển
GroupBox
- Hiển thị một khung bao quanh một nhóm control
- Có thể hiển thị một tiêu đề
- Thuộc tính Text
- Khi xóa một GroupBox thì các control chứa trong nó bị xóa theo
- Lớp GroupBox kế thừa từ System.Windows.Forms.Control
Panel
- Chứa nhóm các control
- Không có caption
- Có thanh cuộn (scrollbar)
- Xem nhiều control khi kích thước panel giới hạn
III/ TẢI CÁC TẬP TIN
Dotnetbar giúp chúng ta tạo nên một giao diện người dùng bắt mắt, hiệu ứng đẹp, cùng nhưng control được thiết kế sao cho tính tiện dụng đạt cao nhất
GroupBox Mô tả
Thuộc tính thường dùng
Panel
Thuộc tính thường dùng
các control, mặc định là false
số khác như Fixed3D, FixedSingle
Trang 12Hình 1.6: Màn hình giao diện DotNetBar Cách thêm DotNetBar vào c#
Click phải lênh ToolBox chọn Choose item
Hình 1.7: Giao diện chọn Choose ToolBox Items
Trang 13Click phải lệnh Project chọn Add Reference
Hình 1.8: Giao diện Add Reference
IV/ THAY ĐỔI KÍCH THƯỚC CÁC FORM
Một Windows Form là một cửa sổ được xuất hiện trong một ứng dụng Mỗi Windows Form là một lớp được kế thừa từ lớp Form nằm trong Namespace System.Windows.Forms
Thuộc tính Windows Form
Những thuộc tính chung của Windows Form được liệt kê theo bảng sau:
Name Là thuộc tính để xác định tên của form, mặc định, thuộc
tính Name của form đầu tiên trong ứng dụng là Form 1
BackgroundImage Thuộc tính xác định hình nền của Form
Font Thuộc tính xác định kiểu, kích thước, và loại font được
hiển thị trên form và trong những controls trong form
Start Position Thuộc tính xác định vị trí xuất hiện của Form trên màn
hình máy tính người sử dụng, có các thuộc tính sau:
Manual – Vị trí và kích thước của form phục vụ vào vị trí xuất hiện của nó
CenterScreen-Xuất hiện ở chính giữa màn hình Windows DefaultLocation –form xuất hiện tại vị trí mặc định của Windows theo kích thước của Form
Windows DefaultBounds – Form được hiển thị tại vị trí mặc định của Windows và các chiều của chúng phục thuộc
Trang 14vào hệ điều hành Windows Center Parent-Form được mở như một cửa sổ con của một form khác và xuất hiện tại vị trí chính giữa so với form cha
WindowState Xác định trạng thái xuất hiện của form: Normal,
Maximized hay Minimized
Sự kiện trong Windows Form :
Những sự kiện trong Windows Form được liệt kê như bảng sau:
trên Windows Form
Deactivate Sự kiện này xảy ra khi một form bị mất trạng thái sử dụng
lần đầu tiên MouseMove Sự kiện này xuất hiện khi chuột được rê trên một form
Hàm thao tác với Windows Form
tính Visible của form đó là True Activate() Sử dụng để kích hoạt trạng thái sử dụng của Form và đưa
public class Form : ContainerControl
{
// Methods public void Activate();
Trang 15public void AddOwnedForm(Form ownedForm);
public void Close();
public void LayoutMdi(MdiLayout value);
// Properties public bool ShowIcon { get; set; } public bool ShowInTaskbar { get; set; } public Size Size { get; set; }
public FormStartPosition StartPosition { get; set; } // Events
public event EventHandler Closed;
public event CancelEventHandler Closing;
public event EventHandler Deactivate;
// Mics protected override void DefWndProc(ref Message m);
protected override void WndProc(ref Message m);
protected override void Dispose(bool disposing);
… }
VI/ CÁC NHÃN VÀ HỘP NHẬP VĂN BẢN, LỚP NÚT NHẤN
1/ Label
Công dụng: Control được sử dụng để hiển thị chữ trên form và không cho
phép người dùng thay đổi Label được sử dụng để mô tả thông tin cho những control khác trên Form
với chiều dài chuỗi ký tự Font
2/ Textbox
Công dụng:
- Dùng trình bày văn bản và cho phép người dùng được thay đổi nội dung văn bản
Trang 16- Công dụng chính là cho người dùng nhập văn bản Mặc định giá trị lớn nhất
PassWordChar Thuộc tính này cho phép lấy một ký tự làm đại diện cho tất
cả các ký tự khác được nhập vào từ người dùng
- Sự kiện click được sử dụng khi người dùng nhấn vào nó:
private void button1_Click(object sender, EventArgs e)
VII/ CÁC SỰ KIỆN BÀN PHÍM VÀ CHUỘT
- Sự kiện là những phản ứng của đối tượng Nói cách khác, sự kiện là những tín hiệu phát ra khi người dùng thao tác trên đối tượng
Trang 17- Nhờ có các sự kiện từ bàn phím và chuột, người lập trình sẽ nhận được những tín hiệu và xử lý những tín hiệu đó để phản hồi lại cho người dùng, tạo nên
KeyPress phát sinh kèm theo với mã ASCII của phím được nhấn
KeyPress không cho biết trạng thái các phím bổ sung {Shift, Alt, Ctrl…}
Sử dụng KeyUp & KeyDown để xác định trạng thái các phím bổ sung
Sự kiện với tham số kiểu KeyEventArgs
Sự kiện với tham số kiểu KeyPressEventArgs
Thuộc tính của lớp KeyPressEventArgs
Handled Cho biết sự kiện KeyPress có được xử lý chưa
Thuộc tính của lớp KeyEventArgs
Alt, Control, Shift Trạng thái các phím bổ sung
KeyCode Trả về mã ký tự được định nghĩa trong Keys
enumeration
Key Code
Ví dụ minh họa các sự kiện: KeyPress, KeyDown, KeyUp
Khi user nhấn một phím
Bắt sự kiện KeyPress: xuất ra phím được nhấn
Bắt sự kiện KeyDown: xuất ra các tham số trong KeyEventArgs
Trang 18Thiết kế trên form có 2 Label:
lblChar: hiển thị ký tự được nhấn trong KeyPress
lblKeyInfo: hiển thị các thông tin của KeyEventArgs khi KeyDown
Tạo KeyPress Event Handling cho form
private void Form1_KeyPress(Object sender, KeyPressEventArgs e0
{//Hiển thị ký tự trên label
lblChar.Text=”Key pressed:”+e.KeyChar;
}
Tạo KeyDown Event Handling cho form
Trang 19private void Form1_KeyDown(object sender, KeyEventArgs e)
Mouse là thiết bị tương tác thông dụng trên GUI
Một số các thao tác phát sinh từ mouse
Di chuyển
Kích chuột
Ứng dụng cần xử lý sự kiện chuột nào sẽ khai báo trình xử lý tương ứng
Lớp MouseEventArgs được sử dụng để chứa thông tin truyền vào cho trình xử
lý sự kiện mouse
Mỗi trình xử lý sự kiện sẽ có tham số là đối tượng object và đối tượng MouseEventArgs (hoặc EventArgs)
Sự kiện chuột với tham số kiểu EventArgs
control MouseLeave Xuất hiện khi con trỏ chuột rời khỏi biên của
control
Sự kiện chuột với tham số kiểu MouseEventArgs
MouseDown/
MouseUp Xuất hiện khi button được nhấn/thả và con trỏ
chuột đang ở trong vùng biên của control
trong vùng biên của control
kiểu là MouseButtons
Ví dụ minh họa kích chuột trái tại một điểm A, giữ chuột trái và di chuyển chuột, chương trình sẽ vẽ đường thẳng từ điểm A đến vị trí hiện tại chuột
Trang 20Sử dụng Graphics để vẽ đường thẳng từ A đến vị trí hiện tại
Cách thực hiện:
Tạo biến lưu trữ điểm A khi user kích chuột trái
Biến pA có kiểu Point là biến thành viên của Form1
public partial class Form1:Form
Khai báo xử lý sự kiện MouseDown trong Form1
Trong cửa sổ event của Form1, kích đúp vào sự kiện MouseDown
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
//lưu lại điểm thứ 1
pA=e.Location;
}
Cài đặt xử lý sự kiện MouseMove
Kiểm tra nếu LeftButton được nhấn
Vẽ đường thẳng từ pA đến vị trí hiện tại
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if(e.Button==MouseButtons.Left)//LeftButton được nhấn
{
Graphics g=this.CreateGraphics(); //lấy thiết bị đồ họa
Pen pen=new Pen(Color.Red,2f); //tạo bút vẽ
Trang 21g.DrawLine(pen,pA,e.Location);// vẽ đường thẳng }
Trang 22Thuộc tính cơ bản:
Tên thuộc tính Ý nghĩa
SelectionMode Xác định cách thức mà người dùng lựa chọn những phần từ
trong ListBox Có 4 giá trị None: Người dùng không thể chọn bất cứ phần tử nào trong ListBox
One: Người sử dụng chỉ chọn một giá trị từ ListBox MultiSimple: Cho phép người sử dụng chọn nhiều phần
tử từ ListBox MultiExtended: Người dùng có thể chọn nhiều phần tử
và sử dụng phím SHIFT, CTRL và phím mũi tên để chọn
những phần tử từ ListBox
thể được sắp xếp SelectedIndex Thuộc tính cho phép gán hoặc nhận vị trí được chọn hiện tại
trong ListBox SelectedItem Thuộc tính này được dùng để gán hoặc nhận phần tử đang
được chọn
Phương thức:
Phương thức Công dụng
Nhập giá trị vào ListBox: <Ten_ListBox>.Items.Add ("Chuỗi") ;
Lấy giá trị trong ListBox: <Ten_ListBox>.SelectedItem.ToString() ;
Sự kiện thường dùng: SelectedIndexChanged: Xảy ra khi chọn một dòng Ngầm định khi nháy đúp ở chế độ thiết kế
Trang 23Công dụng: Dùng để hiển thị một danh sách các lựa chọn / hoặc nhập vào một
giá trị Là sự kết hợp giữa ListBox và TextBox
SelectedText Lấy nội dung thể hiện trên ComboBox từ DisplayMember
Simple: Chọn hoặc gõ giá trị DropDown(mặc định): Chọn hoặc gõ giá trị DropDownList: Chỉ cho phép chọn giá trị SelectedIndex Chỉ số dòng được chọn Nếu không chọn có giá trị là -1
False
Trang 24Sự kiện thường dùng:SelectedIndexChanged: Xảy ra khi chọn 1 dòng
Các phương thức thường dùng:
Add: Thêm một dòng vào ComboBox
RemoveAt(row): Xóa dòng ở vị trí row
Clear: Xóa tất cả các dòng trong ComboBox
DayNameFormat Thuộc tính này được sử dụng để xác định định dạng tên
của những ngày trong tuần VisibleDay Được sử dụng để xác định tháng được xuất hiện hay
không trong Calendar Thuộc tính này được cập nhật sau khi sự kiện VisibleMonthChanged được thực hiện
FirstdayOfWeek Thuộc tính này được sử dụng để xác định ngày của tuần
được xuất hiện tại cột đầu tiên của điều khiện Calendar SelectedDate Thuộc tính này được dùng để biểu diễn cho ngày được
chọn trong điều khiển Calendar SelectionMode Thuộc tính này được sử dụng để xác định khi nào một
người dùng có thể chọn một ngày, một tuần, hoặc một tháng Mặc định, giá trị của thuộc tính này là Day
Trang 25Công dụng: Quản lý các hình ảnh được chứa trong các điều khiển khác như:
ListView, TreeView, ToolStrip,…
Tạo ImageList: Chọn công cụ và kéo thả vào form
Các thuộc tính thường dùng:
- Khi chọn sẽ xuất hiện công cụ Images Collection Editor, cho phép thêm, xoá, sắp xếp các ảnh
X/ TOOLBAR, TAB, TAB PAGE, TOOLTIP
1/ Toolbar
Trang 26Công dụng:Tạo ra Toolbar
Tạo ToolStrip:
- Chọn công cụ
- Kéo control ToolStrip vào trong form
- Bấm vào ToolStrip vừa tạo, ta có thể tạo ra các tool (công cụ) như: Label, TextBox, Button, ComboBox, DropDownButton…
Tabpages Cho phép chỉnh sửa, sắp xếp lại các TabPage
- Mặc định tab có 2 TabPage, để thêm TabPage ta nhấn Add Tab, để xoá TabPage ta chọn remove Tab
- Ta cũng có thể thêm hoặc huỷ tabPage bằng các phương thức:
Thêm TabPage: TabPage.Add
Xoá TabPage: TabPage.Remove
3/ Tooltip
Trang 27Công dụng: Hiển thị thông tin khi người dùng di chuyển chuột đến một điều
khiển có sử dụng kết hợp công cụ Tooltip
Tạo ToolStrip:
- Chọn công cụ
- Kéo control Tooltip vào trong form
XI/ LISTVIEW, TREEVIEW
FullRowSelect Chọn được nhiều phân tử trong ListView
GridLines Hiển thị lưới (Chỉ hiển thị trong chế độ Details)
LargeImageList Danh sách ảnh dạng lơn hiển thị trên ListView
SmailImageList Danh sách ảnh dạng nhỏ hiển thị trên ListView
MultiSelect Có/Không cho phép chọn nhiều dòng Mặc định là True
SelectedItems Mảng các dòng được chọn
Icons: Hiển thị danh sách theo các biểu tượng List: Hiển thị danh sách theo một cột
Details: Hiển thị ListView theo danh sách nhiều cột
Phương thức:
Phương thức Công dụng
RemoveAt(index) Xóa một dòng ở vị trí index
Sự kiện thường dùng: ItemSelectionChanged: Xảy ra khi chọn một dòng
Ví dụ 1.2:
Thiết kế form nhập, sửa, xóa dữ liệu như hình minh họa
Trang 28Cách thực hiện:
Thiết kế Form và đặt tên các đối tượng
- txtId, txtFirstName, txtLastName, txtAddress
- btnNew, btnEdit,btnDelete, btnSave, btnCancel
Đặt thuộc tính cho ListView1
Trang 29CheckBoxes phải được đặt là True)
Trang 30ImageList Chỉ ra danh sách ảnh hiển thị trên các node
Nodes.Add: Bổ sung một node vào cây Nodes.Clear: Xóa toàn bộ các node trên cây Nodes.Remove: Xóa một node trên cây và các node con của nó
SelectedImageIndex Chỉ ra chỉ số ảnh được hiển thị trên node khi node
được chọn
ImageIndex Chỉ ra chỉ số ảnh được hiển thị trên node khi node
không được chọn
Phương thức:
Phương thức Công dụng
Sự kiện:
AfterSelect: Xảy ra khi một node được chọn
BeforeExpand: Xảy ra khi mở rộng một node
Trang 31- Mở Properties của Form
- Thiết lập lại một số giá trị Properties của Form như sau:
- Từ ToolBox, tạo 3 button với Text lần lượt là Border Sytle, Resize, Opacity
Trang 32Bài 2:
- Tạo một Project Windows Forms Mở Form tên Form1 mặc định ở dạng Designer
- Mở Properties của Form
- Thiết lập lại một số giá trị Properties của Form như sau:
- Từ Toolbox tạo Button ở bên trái phía dưới form Đặt Text là Close Form
- Double – click vào Close Form button và cài đặt code cho Button1_Click như sau: this.Close();
Bài 3:
Tạo Form đặt tên frmBai3 và thiết lập Form với các thuộc tính sau:
- Màu nền: Màu xanh dương
- Độ mờ của Form là 85%
- Thể hiện của Form khi xuất hiện là đầy màn hình
- Nội dung Text là Bai 3
- Tạo icon cho Form tuỳ ý
Bài 4:
Tạo Form đặt tên là frmBai4 và thiết lập Form với các thuộc tính sau:
- Vị trí bắt đầu form là giữa màn hình
- Nội dung Text là Bài 4
- Thiết lập con trỏ chuột là Hand
- Loại Form là FixedSingle
Trang 33(txtsSo1, txtSo2, txtKQ, btnCong, btnTru, btnNhan, btnChia, btnXoa)
- Viết chương trình làm các phép toán: cộng, trừ, nhân, chia cho các button btnCong, btnTru, btnNhan, btnChia
- Xóa: Xóa trắng các TextBox
- Thêm vào button Dừng (btnDung), khi nhắp vào btnDung thì dừng chương trình
- Cải tiến:
Khi nhắp button btnChia, nếu txtSo2 là 0 thì xuất hiện hộp thông báo lỗi rồi
xóa trống txtSo2 và di chuyển con trỏ đến TextBox này
Bài 6: Viết chương trình giải phương trình bậc nhất: bx + c = 0
(txtB, txtC, btnGiai, txtKQ)
- Thêm vào button Dừng, khi nhắp vào button này thì dừng chương trình
Bài 7: Viết chương trình giải phương trình bậc hai: ax2 + bx + c = 0
Trang 34Yêu cầu:
- Nếu nhấn nút Giảipt mà chưa nhập hệ số sẽ đưa ra thông báo lỗi, yêu cầu nhạp hệ số
- Khi nhập hệ số đầy đủ, nhấn nút Giảipt, thì các nghiệm sẽ xuất hiện
- Nút thoát, cho phép đóng Form
Bài 8: Thiết kế form như sau:
Yêu cầu: Viết lệnh để chương trình hoạt động như sau:
Nhấn vào Button btnHo thì gán nội dung của txtHo cho lblHoTen
Hướng dẫn: lblHoTen.Text = txtHo.Text
Nhấn vào Button cmdTen thì gán nội dung của txtTen cho lblHoTen
Hướng dẫn: lblHoTen.Text = txtTen.Text
Nhấn vào Button btnHoTen thì gán nội dung của txtHo cộng với txtTen cho lblHoTen
Hướng dẫn: lblHoTen.Text = txtHo.Text + “ “ + txtTen.Text
Nhấn Double click vào lblHoTen thì nội dung của lblHoTen bị xoá
Hướng dẫn: Vào sự kiện Double Click gõ:
lblHoTen.Text =”” // gán bằng rỗng => Xóa
Nhấn vào btnKetThuc thi đóng chương trình
Hướng dẫn: Vào sự kiện Click gõ:
+ Điểm thêm: DThem = 0.5 nếu là nữ; DThem = 0 nếu là nam
+ Điểm kết quả: txtKQ = txtVan * 2 + txtToan * 2 + txtNN + DThem
+ Xếp loại theo tiêu chuẩn:
Trang 35- Nhắp vào nút Xóa (btnXoa) thì xóa hết các nội dung trong các TextBox
- Thêm vào button Dừng, khi nhắp vào button này thì dừng chương trình
Bài 10: Xây dựng form như mẫu sau:
Yêu cầu:
Xây dựng lớp số phức
Khi click nút cộng thực hiện phép cộng hai số phức
Khi click nút trừ thực hiện phép trừ hai số phức
Khi click nút chia thực hiện chia hai số phức
Khi click nút nhận thực hiện nhân hai số phức
Khi click nút xoá sẽ làm trống toàn bộ textbox và nhãn kết quả
Bài 11: Thiết kế form theo mẫu sau
Yêu cầu:
- Khi click vào nút tính tiền sẽ tính tiền theo các dịch vụ đã chọn Nếu chưa nhập họ tên mà tính tiền sẽ xuất bản hộp thoại thông báo sau:
Trang 36Bài 12: Thiết kế form theo mẫu sau:
- TextBox txtKQ (chứa kết quả) để trống
- Nhắp button btnOk (Ok) sẽ hiện trong txtKQ tên website được chọn ở lstWeb
- Nhắp button btnReset (Reset) sẽ xóa trống txtKQ
Trang 37- Nhắp đúp vào button Ok rồi thêm đoạn code sau:
this.txtKQ.Text = "Bạn đã chọn website ";
this.txtKQ.Text += this.lstWeb.SelectedItem.ToString();
- Nhắp đúp vào button Reset rồi thêm đoạn code sau:
this.txtKQ.ResetText();
* Cải tiến: Ta có thể đưa các giá trị của lstWeb trong Form1_Load
+ Thiết kế lại form như sau
+ Nhắp đúp chuột vào nền form, rồi gõ đoạn code
Bài 14: Khởi tạo một ứng dụng Windows Forms Application
Yêu cầu: Thực hiện giống như bài trên, nhưng thay ListBox bằng ComboBox cbWeb
Bài 15: Thiết kế giao diện và viết code để thực hiện những yêu cầu sau:
Cho phép nhập vào 2 số nguyên dương A, B (chương trình phải kiểm tra dữ liệu nhập có chính xác hay không)
Tìm USCLN của A và B và hiện kết quả khi click vào một nút lệnh
Tạo điều kiện để người sử dụng thuận lợi khi cần nhập các hệ số A, B mới
Có nút lệnh để đóng chương trình và phải hỏi người sử dụng trước khi thật sự kết thúc chương trình
Trang 38Bài 16: Thiết kế giao diện để viết chương trình nhập vào một số nguyên dương n và thực hiện các công việc sau:
Kiểm tra n có phải là số nguyên tố không?
Nếu n không phải là số nguyên tố thì xác định số nguyên tố gần n nhất và bé hơn n
Bài 17: Sử dụng ListView, PictureBox thiết kế chương trình xử lý hình ảnh đơn giản tương tự như sau:
Khi nhấn vào nút “Add”, chương trình hỗ trợ mở hộp thoại chọn các tập tin hình ảnh từ các thư mục hình ảnh (*.jpg, *.gif, *.bmp, *.png) Các tập tin chọn từ hộp thoại sẽ được đưa vào danh sách các tập tin hình ảnh (ListView)
Khi nhấn nút “Remove” sẽ loại bỏ hình ảnh chọn lựa trong ListView
Các option rotate cho phép xoay hình ảnh
Các nút |<, <, >, >| cho phép di chuyển tới hình ảnh first, previous, next, last trong danh sách hình ListView
Bài 18: Quản lý thông tin tài khoản cần lưu trữ các thông tin sau: số tài khoản, tên khách hàng, địa chỉ khách hàng và số tiền trong tài khoản Thiết kế chương trình quản lý thông tin tài khoản cho một ngân hàng tương tự như sau:
Trang 39Khi nhấn vào nút “Thêm”, caption của nút chuyển thành “Huỷ” và enable nút
“Lưu”
Nút lưu có tác dụng lưu dữ liệu từ các textbox vào trong ListView
Nút xoá có tác dụng xoá mẫu tin hiện hành trong ListView
Trang 40Bài 19: Viết chương trình quản lý cho thuê CD, thông tin của khách thuê bao gồm mã KH, họ tên, số lượng CD thuê và tình trạng cho thuê
Tạo lớp KhachThue (thuộc tính, set/get …)
Tạo lớp DanhSachKhachThue (dùng mảng hoặc collection ArrayList)
Khi có một khách hàng đến thuê CD tại cửa hàng, nhập dữ liệu liên quan đến khách hàng và nhấn nút “Tính Thuê” thông tin đó được thêm vào List View bên dưới
Các nút <<, <, >, >> cho phép di chuyển giữa các mẫu tin liên quan đến khách thuê trong danh sách khách thuê Khi di chuyển, các thông tin tương ứng sẽ được hiển thị lên các control ở phía trên
Nút “Xóa” cho phép xóa khách thuê (hiện hành) trong danh sách khách thuê
Bài 20: Viết chương trình quản lý danh sách sinh viên ở dạng cây như hình minh họa
Khi chương trình bắt đầu chạy, cây được phát sinh theo bảng chữ cái A-Z Cho phép thêm mới sinh viên, sinh viên mới thêm sẽ hiển thị trên cây tùy theo
họ
Khi tìm kiếm, nếu sinh viên đó tồn tại, hiển thị chọn SV đó trên cây