Bài tập C++ .NET FRAMEWORK
Trang 1Chương 1: Tổng quan về NET FRAMEWORK
1 Thành phần của net FrameWork
Hình 1-1 Kiến trúc khung ứng dụng Net
CLR: Common Language Runtime
Quản lý code thực thi của chương trình, quản lý tiến trình, quản lý
bộ nhớ, cung cấp dịch vụ biên dịch, tích hợp và tác vụ truy cập từ xa FCL: Framework Class Library
Appli
FCL CLR
Operatio
n system
Trang 2Bao gồm các dịch vụ giao tiếp người sử dụng, điều khiển, truy cập
dữ liệu, cung cấp các lớp giao tiếp, các điều khiển giá trị, phương thức truy cập và chức năng chính của hẹ thống, XML, bảo mật,…
2 Ứng dụng dùng C#
Visual C# là ngôn ngữ lập trình thiết kế để phát triển ứng dụng chạy trên net Framework C# là ngôn ngữ lập trình mạnh, đơn giản, kiểu
an toàn và hướng đối tượng, gần giống như ngôn ngữ C.
- xây dựng ứng dụng trên window Form
- Có thể làm việc trên môi trường console application bằng màn hình và bàn phím
- Xây dựng thư viện (class library)
- Có thể xây dựng điều khiển do người dùng định nghĩa (custom control)
- Xây dựng ứng dụng báo cáo (Crystal report)
- Xây dựng ứng dụng SQL Server
- ứng dụng PDA và mobile: xây dựng ứng dụng cho các thiết bị cầm tay hay máy kỹ thuật số hệ thống cá nhân (smart device)
- đóng gói và triển khai
- tạo một solution: dung để quản lý nhiều project
3 Cấu trúc chương trình C#
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main( string [] args)
{
}
}
}
Chương 2: FORM VÀ CÁC ĐỊNH DẠNH TRÊN FORM
Trang 31 Các loại form (mdi form, child form, normal form)
1.1 MDI form
Form được gọi là mdi form khi thuộc tính isMdiContainer có giá trị
là true.
private void button1_Click( object sender, EventArgs e)
{
Form frm = new Form2 ();
frm.IsMdiContainer = true ;
frm.Show();
}
1.2 Child form
Child form là form mà khi nạp lên sẽ nằm bên trong vùng làm việc
của Mdi form Để form trở thành child form thì phải khai báo thuộc tính MdiParent ứng với Mdiform
private void button2_Click( object sender, EventArgs e)
{
Form frm = new Form3 ();
frm.MdiParent = this ;
frm.Show();
}
Vì Child Form nạp lên màn hình, kích thước và không gian làm việc phụ thuộc vào MDI form
Ngoài ra có thể thêm một mới MDI form từ template có sẵn.
1.3 Normal form
Form mở ra không phải là mdi form và child form thì là mormal
form
2 Các thuộc tính của form.
2.1 Nhóm thuộc tính nhận dạng
- Name: dùng để nhận dạng form, trong một project có thể có nhiều
form, mỗi form phải có tên riêng khác nhau.
- Text: dùng để trình bày chuỗi trên thanh tiêu đề.
- ShowIcon: khi nạp lên màn hình đều có biểu tượng mặc định ở góc
trên bên trái màn hình.
- Opacity: cho phép làm trong suốt bề mặt của form để có thể nhìn được biểu tượng của màn hình desktop.
2.2 Nhóm thuộc tính nhận dạng.
Trang 4- Backcolor: chọn màu nền
- ForeColor: dùng để định dạng màu mặc định cho chuỗi các
Control trên Form.
- StartPosition: chỉ định vị trí hiển thị của form trên màn hình
- WindowState: có 3 trạng thái: normal, minimized, maximized.
- IsMdiContainer: có hai giá trị: true, false Nếu là false thì là
normal form.
- ControlBox: luôn tồn tại trên form, trừ khi ko muốn chúng xuất hiện Khi nhấn vào biểu tượng x ở góc trên bên phải thì form sẽ
đóng lại Nếu không sử dụng biểu tượng này thì khai báo giá trị
thuộc tính này là false.
2.3 Nhóm thuộc tính thực đơn.
Gồm 2 thuộc tính chính là MainMenuStrip ứng với control
MenuStrip và ContextMenuStrip ứng với ContexMenuStrip Nếu
thêm control MainMenuStrip vào Form thì thuộc tính này tự động gán giá trị là tên của MainMenuStrip vừa thêm vào.
2.4 Nhóm thuộc tính chỉ thị
Hai thuộc tính chính dùng để thực hiện chức năng chỉ thị với điều
khiển button là AcceptButton và CancelButton.
Ví dụ: trên form đăng nhập hệ thống, người sử dụng có thể nhấn fím
Enter thay vì nhấn OK, nhấn nút Esc thay vì click nút Cancel Để làm được điều này ta khai báo 2 nút lệnh btnOK và btnCancel thì chỉ cần đặt 2 thuộc tính AcceptButton là btnOK và CancelButtton là btnCancel
private void btnOk_Click( object sender, EventArgs e)
{
if (textBox1.Text == "" )
{
MessageBox Show( " Nhập Username:" );
textBox1.Focus();
}
else if (textBox2.Text == "" )
{
MessageBox Show( " Nhập Password:" );
textBox2.Focus();
}
Trang 5}
private void btnCancel_Click( object sender, EventArgs e)
{
Application Exit();
}
3.Sự kiện trên form
Danh sách các biến cố:
- Biến cố FormClosed: xảy ra khi form đã đóng
- Biến cố FormClosing: xảy ra khi form đang đóng
Ví dụ:
private void Form1_FormClosing( object sender, FormClosingEventArgs e)
{
if ( MessageBox Show( "bạn có chắc chắn muốn đóng form không?" , "Thông báo" , MessageBoxButtons OKCancel, MessageBoxIcon Warning,
MessageBoxDefaultButton Button1 )== DialogResult Cancel )
e.Cancel = true ;
}
-Biến cố Click: xảy ra khi người dùng nhấn chuột trên vùng làm việc của form
- Biến cố Activated: xảy ra khi form được kích hoạt bằng mã hay
do tác động của người sử dụng
- Biến cố Load: Xảy ra khi form được hiển thị lần đầu tiên.
- Biến cố KeyPress: xảy ra khi một phím được nhấn
Ví dụ:
private void Form2_KeyPress( object sender, KeyPressEventArgs e)
Trang 6{
//label1.Text = "Press by key: ";
//while (e.KeyChar.ToString ()!="")
label1.Text = label1.Text + e.KeyChar.ToString();
}
4 Phương thức
- Close: dùng để đóng form
- Hide: dùng để che giấu form đang mở.
- Activate: dùng để kích hoạt form Nếu trong MDIform có nhiều
Child Form đang mở thì bạn có thể kích hoạt chúng bằng cách
sử dụng phương thức này.
- Show: cho phép nạp form lên màn hình.
Trang 7Chương 3: Các điều khiển thông thường
Bao gồm: Label, Textbox, ComboBox, ListBox, CheckBox,
RadioButton, Button.
Tất cả các điều khiển này đều có các thuộc tính chung:
- BackColor: màu nền điều khiển
- ForeColor: Màu chữ trên điều khiển
- Text: Chuỗi trình bày trên điều khiển
- Visible: Thuộc tính che giấu hay hiển thị điều khiển
- Name: Tên của điều khiển
- Locked: Khóa không cho di chuyển, hoạt động trên form.
Các biến cố chung thường gặp:
- Click: xảy ra khi người dùng nhấn chuột
- MouseMove: xảy ra khi người sử dụng di chuột qua vùng làm
việc của điều khiển
- MouseUp: Xảy ra khi người sử dụng nhấn chuột xuống vùng
làm việc của điều khiển rồi nhả ra.
- MouseDown: Xảy ra khi người sử dụng nhấn chuột xuống vùng
làm việc của điểu khiển
- Move: xảy ra khi di chuyển điều khiển
Bài tập về nhà:
Bài 1: Thiết kế form và viết chương trình calculator trên window.
Bài 2: Thiết kế và viết chương trình giải phương trình bậc nhất 1
ẩn ax+b=0.
Input: a, b
Output: x
Cách giải:
Xét a=0
Nếu b=0 thì pt vô số nghiệm
Nếu b<>0 thì pt vô nghiệm
Nếu a<>0 thì pt có một nghiệm duy nhât x=-b/a;
Trang 8tieu_de,MessageboxButtons, MessageBoxIcon, MessageBoxDefaultButton);
Bài tập 3: Thiết kế và viết chương trình cho form đăng
nhập
1 Lable, textbox, button
2 Radiobutton, checkbox
3 Combobox, listbox
3.1 Combobox
Các thuộc tính:
- Flatstyle: kiểu đường viền của điều khiển
- DataSource: Tập dl điền vào điều khiển
- DropDownStyle: Kiểu trình bày danh sách phần tử, mặc
định là DropDown (cho phép thêm mới chuỗi),
DropDownList (chỉ cho phép chọn trong danh sách),
simple (dạng danh sách)
- Items: tập các phần tử có trong điều khiển.
- MaxDropDownItems: số phân tử lớn nhất.
- MaxLength: số kí tự lớn nhất cho phép nhập
- Text: Chuỗi ứng với nhãn đg chọn
- SelectedText: Lấy giá trị chuỗi ứng với nhãn đg chọn
- SelectedItem: Lấy phần tử Object ứng với nhãn dg chọn
- SelectedValue: Lấy giá trị ứng với ptử kiểu Object đg
chọn
- SelectedIndex: Lấy giá trị chỉ mục ứng với ptử đg chọn Các biến cố:
Trang 9- MouseClick: xảy ra khi người dùng click chuột lên điều
khiển
- MouseDoubleClick: xảy ra khi người dùng click hai lần
liên tiếp lên điều khiển
- SelectedIndexChanged: xảy ra khi chỉ mục của phần tử
được thay đổi
- SelectedValueChanged: xảy ra khi giá trị của phần tử
được thay đổi
- SelectionChangeCommited: xảy ra khi người sử dụng kết
thúc quá trình chọn phần tử trên điều khiển
- Textchanged: xảy ra khi chuỗi trên điều khiển thay đổi
- EnabledChanged: xảy ra khi thuộc tính Enabled thay đổi
giá trị từ true sang false và ngược lại
- …
Phương thức:
- Add (thêm một phần tử vào Combo box)
- Addrange(thêm một số ptử vào combo box)
3.2 Listbox
Listbox cho phép chọn nhiều phần tử cùng một lúc
Hầu như các thuộc tính phương thức, và biến cố của
combobox đều có trong listbox
Thuộc tính:
- selectionMode: cho phép chọn một hay nhiều phần tử
cùng một lúc
- selectedItems:
Trang 10Bài tập Thiết kế và viết chương trình sau:
Sau đó viết chương trình xử lý các sự kiện (biến cố)
-Khi click vào button “Thêm” thì sẽ hiển thị lên hộp thoại thông báo “ có lưu dữ liệu không?”, nếu click vào nút “yes” thì dữ liệu nhập ở phần thông tin sẽ thêm vào danh sách sinh viên , nếu click vào nút “no” thì không them vào danh sách
- KHi click vào nút “xóa ” thì xuất hiện hộp thoại hỏi “có muốn xóa sinh viên này không?”, nếu click vào nút “Ok” thì sinh viên được chọn trong danh sách sẽ bị xóa
- Khi click vào nút thoát thì chương trình sẽ đóng
Trang 11Chương 4: Điều khiển đặc biệt
Chương này chúng ta tiếp tục tìm hiểu một số điều khiển
đặc biệt khác như: tooltip, HelpProvider, ErrorProvider,
ProgressBar, ListView, TreeView, DatatimePicker, monthCalendar.
1 Điều khiển tooltip
+ Backcolor: màu nền cửa sổ tooltip.
+ AutomaticDelay: Thời gian tính bằng phần ngàn giây + IsBalloon: mặc định thuộc tính này là false, ứng với cửa
sổ bật lên hình chữ nhật Nếu giá trị là true thì cửa sổ bật
lên hình chữ nhật góc tròn
+ AutoPopDelay: Thời gian tính bằng phần ngàn giây mà cửa sổ của điều khiển tooltip xuất hiện cho đến khi kết thúc
nếu người sử dụng rê chuột vào điều khiển
+ InitialDelay: Thời gian tính bằng phần ngàn giây mà cửa
sổ của điều khiển tooltip xuất hiện từ khi người sử dụng rê
chuột vào điều khiển tooltip
+ ReshowDelay: Thời gian tính bằng phần ngàn giây mà cửa sổ của điều khiển tooltip tắt từ khi người sử dụng rê
chuột ra khỏi điều khiển
+ toolTipIcon: Biểu tượng xuất hiện bên cạnh chuỗi khai báo trong thuộc tính ToolTipTitle
+ ToolTipTitle: Chuỗi xuất hiện bên cạnh biểu tượng.
+ SetTooltip: Khai báo chuỗi cho điều khiển tương tự như
thuộc tính Tooltip on toolTip1
Trang 12+ GetToolTip: Nhận chuỗi trả về từ thuộc tính tooltip on tooltip1
+clear: Loại bỏ tất cả các tooltipText cho các điều khiển trên form.
Các bước:
dụ cần giải thích cho textbox, chọn textbox cần giải thích, => truy cập vào thuộc tính tooltip on tooltip1=> nhập chuỗi cần giải thích
2 Error Provider
Điều khiển dùng để cung cấp giao tiếp với người sử dụng
thông tin lỗi của điều khiển trên form.
Tương tự như tooltip bạn có thể thêm vào điều khiển error
Provider vào form để áp dụng cho mọi điều khiển trên form
+ Icon: biểu tượng xuất hiện bên cạnh
+ BlinkRate: Thời gian tính bằng phần ngàn giây áp dụng
cho khoảng cách giữa hai lần nhấp nháy
+ IsBalloon: giống như tooltip
+BlinkStyle:Kiểu nhấp nháy khi có lỗi xảy ra.
+ SetError: Khai báo chuỗi cho điều khiển tương tự như thuộc tính error on error Provider;
+Geterror: Nhận chuỗi từ thuộc tính error on error provider.
Trang 13+ Clear: xóa điều khiển errorprovider.
Các bước;
errorProvider bằng cách gọi phương thức SetError.
3 Điều khiển HelpProvider
Cung cấp cửa sổ trợ giúp cho điều khiển Mỗi đối tượng
HelpProvider cung cấp tập tham chiếu đến điều khiển mà
bạn chỉ định
-Thuộc tính:
+ HelpNamespace: chỉ định tên tập tin trợ giúp định dạng chm hay html chứa nội dung trợ giúp trực tuyến.
Thao tác:
form thì một số thuộc tính sẽ xuất hiện như:
HelpKeyword on helpProvider, helpNavigator on helpProvider, helpString on helpProvider và showhelp
on helpProvider vào tất các các điều khiển.
-Ví dụ: chọn điều khiển textbox3 Chọn thuộc tính
HelpString on helpProvider1 nó cho phép bạn hiển thị
một chuỗi như tooltip khi click vào biểu tượng “?” trên
góc form
thuộc tính maximizeBox và minimizeBox của form là
Trang 14false, sau đó đặt lại giá trị của thuộc tính HelpButton là
true
hiện thì ta khai báo thuộc tính HelpNamespace
HelpNavigator on helpProvider1 chọn Index.
Và thuộc tính HelpKeyword on helpProvider1 chọn chuỗi
password
nhấn phím F1
4 Điều khiển Progressbar
Trình bày thời lượng đã thực hiện
-Thuộc tính:
+ Maximum: giới hạn trên của điều khiển
+ Minimum: Giới hạn dưới của điều khiển
+ Value: Giá trị đang xử lý của điều khiển
+ Style: kiểu trình bày của điều khiển
+ Step: Giá trị ứng với lần nhảy khi xử lý của điều khiển.
//Using System.IO;
private void button1_Click( object sender, EventArgs e)
{//Tạo lập đối tượng
DirectoryInfo dir = new DirectoryInfo ( "D:\\
Setup" );
// gán thuộc tính maximum của progressBar
this progressBar1.Maximum =
dir.GetDirectories().Length;
int i = 0;
j = 0;
Trang 15foreach ( DirectoryInfo f in
dir.GetDirectories())
{
i++;
this progressBar1.Value = i;
this label1.Text = f.Name;
readfile(f.FullName );//do nguoi dung
dinh //nghĩa
}
this label1.Text = "Complete" ;
this label2.Text = i.ToString() + j.ToString() + "file" ;
}
void readfile( string Foldername)
{
DirectoryInfo dir = new
foreach ( FileInfo f in dir.GetFiles( "*.*" ))
{
j++;
this label2.Text = f.Name;
Application DoEvents();
}
}
}
Trang 165 Listview
- Dùng để trình bày phần tử dạng danh sách với nhiều hình dạng khác nhau
- Các thuộc tính:
+ AllowColumnReorder: cho phép sắp xếp cột trên điều khiển Listview ở chế độ thi hành (giá trị mặc định bằng
false)
+ CheckBoxes: Xuất hiện checkbox bên cạnh từng phần tử trên điều khiển listview
+ Columns: khai báo số cột (có header) của điều khiển
listview
+ FullRowsSelect: True là cho phép tô màu ứng với hàng
của phần tử được chọn
+ Group: Khai báo nhóm để phân loại các phần tử sau khi trình bày trên điều khiển Listview.
+ LabelEdit: chọn giá trị là true nếu bạn cho phép người sử
dụng thay đổi chuỗi của mỗi phần tử
+ LabelWrap: chọn giá trị bằng true thì chuỗi sẽ tự động
xuống hàng khi chiều dài không đủ để trình bày
+ MultiSelect: chọn giá trị là true nếu bạn cho phép người
sử dụng chọn nhiều phần tử
+ LargeImageList: Đối tượng ImageList chứa danh sách các Image theo số chỉ mục từ 0 đến n-1 (n là số lượng hình) được sử dụng cho trường hợp thuộc tính View là
LargeIcon.
+ SmallImageList: Đối tượng ImageList chứa danh sách các đối tượng Image theo số chỉ mục từ 0 đến n-1 được sử dụng cho trường hợp thuộc tính View là SmallIcon.
Trang 17+ Sorting: Sắp xếp Nếu chọn Ascending cho phép sắp xếp
các phần tử theo chiều tăng dần
+ View: Chế độ trình bày tương ứng trên điều khiển
listview như : list, Details, LargeIcon, SmallIcon, Title.
+ SelectedItems: Trả về danh sách phần tử được chọn.
+ Items: danh sách các phần tử trong listview
Chú ý:
Trong listview các phẩn tử trong lisview có kiểu
ListviewItem.
Nếu trong listview có nhiều cột Giá trị tại mỗi cột có thuộc
tính là SubItem.
6 DateTimePicker
Điều khiển này cho phép người sử dụng chọn giá trị thời gian và trình bày giá trị này với định dạng cho trước
-Các thuộc tính:
+ CustomFormat: Định dạng thời gian
+ Format: Chọn định dạng có sẵn của điều khiển
DateTimePicker.
+ MaxDate: là ngày lớn nhất cho phép người sử dụng chọn trên điều khiển DateTimePicker.
+ MinDate: là ngày nhỏ nhất cho phép người sử dụng chọn
trên điều khiển
+ Check: bằng true thì checkbox sẽ check mặc định nếu
ShowCheckBox bằng true.
+ ShowCheckBox: chọn giá trị bằng true thì biểu tượng
checkbox xuất hiện bên cạnh giá trị.