Mục Lục
Lời Nói Đầu: - 2 -
Chương 1 : Thiết lập môi trường phát triển ứng dụng - 2 -
1.1 Smart Device Extension và .NET Compact Framework - 2 -
1.2 Những thiết bị phi chuẩn - 13 -
Chương 2:Thiết kế những ứng dụng GUI băng Windows Forms. - 15 -
2.1 Tìm hiểu những điều khiển không được hỗ trợ trong .NET Compact Framework - 15 -
2.2 Những hàm System.Windows.Forms không được hỗ trợ trong .NET Compact Framework. - 16 -
2.3 Làm việc với cửa sổ Form Designer của Visual Studio .NET - 16 -
2.4 Tìm hiểu về các nền tảng khác nhau của Windows Forms - 20 -
2.5 Làm việc với Control của Form. - 22 -
2.6 Điều khiển Button - 24 -
2.7 Sử dụng điều khiển TextBox - 25 -
2.8 Sử dụng điều khiển Label - 26 -
2.9 Điều khiển RadioButton - 26 -
2.10 Sử dụng điều khiển CheckBox - 27 -
2.11. Sử dụng điều khiển ComboBox - 28 -
2.12 Sử dụng điều khiển ListBox - 31 -
2.13 Các điều khiển khác - 32 -
Chương 3: Tìm hiểu ADO.NET trên .NET Compact Framework - 60 -
3.1 Giới thiệu ADO.NET trên .NET Compact Framework - 60 -
3.2. Lưu dữ liệu với DataSet - 60 -
3.3 Tìm hiểu về các ràng buộc dữ liệu - 65 -
3.4 Thiết lập cho các trường tự động tăng giá trị - 67 -
3.5. Mô hình dữ liệu quan hệ với DataSet - 68 -
3.6 Tạo các khung ràng buộc của dữ liệu với một DataView - 73 -
Chương 4: Lập trình với Microsoft SQL Server CE - 77 -
4.1 Tìm hiểu các tính chất hỗ trợ bởi Microsoft SQL Server 2000 Windows CE Edition - 77 -
4.2 Tạo CSDL Microsoft SQL Server CE - 77 -
4.3 Thêm cấu trúc vào một CSDL Microsoft SQL Server CE - 78 -
4.4 Lưu trữ (Populating) CSDL Microsoft SQL Server CE - 83 -
4.5 Lấy dữ liệu bằng SqlCeDataReader - 84 -
4.6 Lọc một DataSet bằng SqlCeDataAdapter - 89 -
4.7 Cập nhật CSDL Microsoft SQL Server CE sử dụng SqlCeDataAdapter - 91 -
4.8 Đối tượng SqlCommand với SqlCeCommandBuilder - 92 -
Chương 5: Tài Liệu Tham Khảo - 94 -
95 trang |
Chia sẻ: netpro | Lượt xem: 2741 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu về công nghệ NET Compact Framework và lập trình ứng dụng trên Pocket PC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ToggleButton
Một nút mà khi ta kích vào nó thì nó bị ấn xuống. và nó sẽ giữ nguyên trạng thái đó cho đến khi nó được kích lại lần nữa.
Xử lý sự kiện ButtonClick của ToolBar
Khi một người sử dụng kích vào một nút trên điều khiển ToolBar, một sự kiện ButtonClick được thực hiện. Ta có thể xử lý sự kiện này để việc thực hiện hoạt động được gán cho nút được kích. Bộ xử lý sự kiện của sự kiện ButtonClick nhận được một đối tượng ToolBarButtonClickEventArgs . Thuộc tính ToolBarButtonClickEventArgs. Button là một tham chiếu cho nút ToolBar khi nó được kích. Ví dụ sau đây trình bày việc đưa ra điều khiển OpenFileDialog như thế nào khi nút ToolBar được kích.
C#
private void
toolBar1_ButtonClick(object sender,
System.Windows.Forms.ToolBarButtonClickEventArgs e) {
if(e.Button == this.toolBarButton1) {
OpenFileDialog dlg = new OpenFileDialog();
if(dlg.ShowDialog() == DialogResult.OK) {
this.lblOpenFile.Text = dlg.FileName;
}
}
else if(e.Button == this.toolBarButton2) {
SaveFileDialog dlg = new SaveFileDialog();
if(dlg.ShowDialog() == DialogResult.OK ) {
this.lblSaveFile.Text = dlg.FileName;
}
}
}
Thêm các Menu bằng điều khiển MainMenu
Sử dụng những Menu là một cách hiệu quả và dễ dàng để đưa ra những tùy chọn cho những người sử dụng. Những Menu được xử lý khác nhau, nó phụ thuộc vào ứng dụng của bạn đang chạy trên hệ điều hành Pocket PC hay hệ điều hành Windows CE. Theo mặc định một ứng dụng trên Pocket PC sẽ chứa một điều khiển MainMenu. Một ứng dụng trên Pocket PC hiển thị những menu ở đáy của màn hình ứng dụng. Những ứng dụng trên Windows CE không có mặc định cho menu, và những menu được hiển thị tại đỉnh của ứng dụng, nó giống như một chuẩn cho những ứng dụng trên desktop.
Điều khiển MainMenu là một điều khiển mà nó chứa tất cả những điều khiển trong ứng dụng. Những menu với những mục chọn mức dưới có thể được tạo ra bằng cách thêm nhiều mục chọn cho MenuItem ở mức đỉnh.
Bạn có thể thêm những menu cho ứng dụng của bạn ở thời điểm thiết kế hoặc tại thời điểm chạy thông qua trình thiết kế menu. Code đưới đây trình bày việc làm thế nào để thêm một mục chọn menu với hai mục chọn trình đơn phụ cho điều khiển MainMenu được đặt tên là MainMenu1. Ngoài ra, code cũng giải thích việc làm thế nào để thêm một dụng cụ chia tách cho một menu. Việc này được làm bằng cách tạo một đối tượng MenuItem mới và đặt cho đoạn văn bản của nó một chuổi kí tự có chứa kí tự là dấu nối đơn “-”.
C#
MenuItem fileMenu = new MenuItem();
MenuItem newItem = new MenuItem();
MenuItem sepItem = new MenuItem();
MenuItem exitItem = new MenuItem();
fileMenu.Text = "File";
newItem.Text = "New";
sepItem.Text = "-";
exitItem.Text = "Exit";
fileMenu.MenuItems.Add(newItem);
fileMenu.MenuItems.Add(sepItem);
fileMenu.MenuItems.Add(exitItem);
mainMenu1.MenuItems.Add(fileMenu);
Hình 2.18: Trình bày một menu đang được hiển thị trên bộ mô phỏng Pocket PC 2002.
Hình 2.18: Một ứng dụng đơn giản có sử dụng điều khiển MainMenu
đang được chạy trên bộ mô phỏng Pocket PC 2002.
Khi người sử dụng chọn một mục chọn trong menu thì một sự kiện Click được thực thi. Bạn xử lý sự kiện này tương tự như việc xử lý sự kiện Click của điều khiển Button.
2.13.7 Sử dụng điều khiển ContextMenu trong một ứng dụng.
Điều khiển ContextMenu tương tự như điều khiển MainMenu nhưng có loại trừ những menu ngữ cảnh được kết hợp với những điều khiển khác, trong khi MainMenu được kết hợp với form của ứng dụng. Ngoài ra, những ContextMenu cũng được biết đến như những menu xoè ra mà xuất hiện khi bạn nhấn nhẹ và giữ một điều khiển trên Pocket PC hay kích phải chuột lên một điều khiển trên Windows CE.
Để thêm một ContextMenu cho một ứng dụng, thì ta kéo điều khiển đến từ hộp ToolBox lên trên ứng dụng. Điều khiển ContextMenu mới sẽ xuất hiện trong panel ở đáy của Form Designer. Khi ContextMenu được lựa chọn, thì Form Designer đặt điều khiển ở chỗ thích hợp giống như điều khiển MainMenu. Ở tại thời điểm thực thi, ContextMenu sẽ xuất hiện ở trên điều khiển tương ứng của nó. Để thêm MenuItem cho ContextMenu, bạn kích vào ContextMenu trên Form hay kích vào liên kết Edit menu trong cửa sổ Properties. Link Edit Menu chỉ hiện rõ khi ContextMenu được chọn.
Ngoài ra, bạn cũng có thể tạo những điều khiển ContextMenu ở thời điểm thực thi. Đầu tiện một điều khiển ContextMenu phải được khởi tạo. Tiếp theo ta thêm những đối tượng MenuItem cho nó, và sau đó đặt thuộc tính ContextMenu của một điều khiển cho ContextMenu thể hiện. Mã sau đây trình bày việc làm thế nào để thêm một ContextMenu ở thời điểm thực thi:
C#
ContextMenu cMenu = new ContextMenu();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
menuItem1.Text = "Default Item 1";
menuItem2.Text = "Default Item 2";
// Add menuItem2 as a child of menuItem1
menuItem1.MenuItems.Add(this.menuItem2);
// Add menuItem1 to the context menu
cMenu.MenuItems.Add(this.menuItem1);
// Add the context menu to a label control
label1.ContextMenu = cMenu;
Khi một ContextMenu được gọi đến thì một sự kiện Popup được thực thi. Sự kiện này có thể được xử lý với tùy biến ContextMenu trước khi nó được hiển thị đến người sử dụng. Khi một MenuItem được lựa chọn từ ContextMenu, thì một sự kiện Click được thực thi cho MenuItem.
Hình 2.19 cho thấy một ứng dụng có sử dụng một điều khiển ContextMenu đang được chạy. Những MenuItem trên điều khiển được định hình khi nó được kích hoạt. những điều khiển CheckBox xác định những MenuItem nào sẽ được hiển thị. Menu Default Item1 luôn luôn được hiển thị.
Hình 2.19: Một ứng dụng đơn giản có sử dụng điều khiển ContextMenu
đang được chạy trên bộ mô phỏng Pocket PC 2002.
2.13.8 Sử dụng điều khiển Timer
Đều khiển Timer cho phép bạn thực hiện mã xử lý sự kiện lặp đi lặp lại nhiều lần trong những khoảng thời gian xác định. Nếu code của bạn cần chạy một Thead (chuỗi) ngoài thread của Windows, thì bạn phải sử dụng không gian tên System.Threading.
Điều khiển Timer được thực thi bởi một sự kiện Tick. Một sự kiện Tick chỉ xuất hiện khi thuộc tính Enabled của Timer được đặt là true. Bạn có thể dừng một điều khiển Timer bằng cách đặt thuộc tính Enabled là false. Thuộc tính Interval của điều khiển Timer xác định số lượng của một phần nghìn giây giữa những sự kiện Tick.
Trong mục “Chương trình điều khiển ProgressBar”, chúng ta đã nói đến chương trình game BombSquad.exe. Đối tượng của trò chơi là sẽ kích vào nút Diffuse trước khi điều khiển ProgressBar được làm đầy. Điều chú ý là vị trí của nút Diffuse liên tục thay đổi, trong khi giá trị của ProgressBar đang tăng lên. Ứng dụng này sử dụng hai thiết bị bấm giờ. Một điều khiển Timer được xác định như thế nào để giá trị của ProgressBar được cập nhật. Và một điều khiển Timer khác được xử lý sự di chuyển của nút Diffuse xung quanh form. Đoạn code trình bày hai Timer được xử lý như thế nào.
Đoạn mã:
C#
private void timerButtonMove_Tick(object sender, System.EventArgs e) {
if(!gameOver) {
this.button1.Location =
new Point(rand.Next(0, 168), rand.Next(0, 216));
}else {
EndGame();
}
}
private void timerProgressBar_Tick(object sender, System.EventArgs e) {
if( counter < 60 ) {
if( gameOver )
return;
if(this.progressBar1.Value < this.progressBar1.Maximum)
this.progressBar1.Value += 1;
++counter;
} else {
if( !gameOver ) {
EndGame();
MessageBox.Show("Boom!", "Loser");
}
}
}
private void EndGame() {
this.timerButtonMove.Enabled = false;
this.timerProgressBar.Enabled = false;
counter = 0;
this.gameOver = true;
this.button2.Enabled = true;
}
2.13.9 Sử dụng các điều khiển OpenFileDialog và SaveFileDialog
Một nhiệm vụ chung cho mỗi ứng dụng là mở hay lưu giữ một file mà nó là kết quả của dữ liệu của ứng dụng. Trong những ứng dụng của Windows thì những hộp thoại Open và Save file cung cấp một cách dễ dàng cho người sử dụng để định vị một file. .NET Compact Framework cung cấp những điều khiển OpenFileDialog và SaveFileDialog để tương tác với những hộp thoại này.Trên Windows CE và Pocket PC, những điều khiển này chỉ cho phép bạn xác định vị trí của thư mục My Documents và một thư mục bên dưới.
Có vài thuộc tính đáng quan tâm mà bạn có thể xem xét sự thiết đặt trước khi hiển thị một trong số những hộp thoại file cho người sử dụng. Đầu tiên là đặt thuộc tính Filter, nó xác định những kiểu file và những mở rộng của file được liệt kê trong mọi hộp thoại file. Chẳng hạn, xâu kí tự sau đây chỉ cho phép những file có đuôi mở rộng là .dll hay.exe được liệt kê trong hộp thoại:
"Dynamically Linked Library|*.dll|Executable|*.exe"
Mỗi file filter sẽ được thêm vào menu thả xuống Files Type trong hộp thoại Open hoặc Save. Bạn có thể thay đổi file filter hiện thời được lựa chọn bằng cách đặt thuộc tính FilterIndex . Giá trị mặc định của thuộc tính này là 1.
Để hiển thị một hộp thoại file Open hay Save , ta gọi phương thức ShowDialog trên cả hai điều khiển OpenFileDialog hay SaveFileDialog. Khi gọi phương thức này thì hộp thoại Open hay Save sẽ hiển thị và vì vậy nó sẽ làm tạm ngừng quá trình làm việc cho đến khi người sử dụng kích vào nút OK hoặc nút Cancel.
ShowDialog trả ra một giá trị liệt kê DialogResult. DialogResult có vài hàm thành phần, nhưng phương thức ShowDialog sẽ chỉ trả về DialogResult.OK hay DialogResult.Cancel. Nếu DialogResult.OK được trả lại, thì người sử dụng đang kích vào nút Ok, và bạn có thể kiểm tra thuộc tính Filename để khôi phục đường dẫn đầy đủ của file của người sử dụng được lựa chọn. Nếu DialogResult.Cancel được trả về thì người sử dụng được kích vào nút Cancel để loại bỏ hộp thoại.
Những điều khiển có sự khác nhau về sự hiển thị, nó phụ thuộc vào hệ điều hành mà chúng đang chạy. Trên Pocket PC, những hộp thoại sẽ xuất hiện chiếm toàn màn hình. Trên Windows CE, một hộp thoại sẽ xuất hiện như một cửa sổ hội thoại mở ra ở trên ứng dụng.
Mã sau đây giải thích việc làm như thế nào để hiển thị một điều khiển OpenFileDialog mà có danh sách các file với đuôi mở rộng là .dll hay .exe. Nếu một file được lựa chọn, thì một hộp thoại sẽ xuất hiện với tên file đầy đủ.
C#
OpenFileDialog ofDlg = new OpenFileDialog();
ofDlg.Filter = "DLL|*.dll|Executable|*.exe";
ofDlg.IntialDirectory = "\\My Documents";
if(DialogResult.OK == ofDlg.ShowDialog()) {
MessageBox.Show("You Selected " + ofDlg.FileName);
} else {
MessageBox.Show("Go ahead, select a file!");
}
2.13.10. Sử dụng điều khiển Panel.
Điều khiển Panel là một điều khiển mà nó chứa những điều khiển khác. Bạn có thể thêm những điều khiển cho Panel vào thời gian thiết kế và thời gian thực thi. Những panel thông thường được dùng để nhóm những điều khiển có liên quan lại với nhau. Chẳng hạn, trong .NET Compact Framework không hỗ trợ điều khiển GroupBox, cái mà có thể được dùng để nhóm những điều khiển RadioButton lại với nhau. Thay vào đó, bạn có thể thêm những điều khiển RadioButton cho một Panel để hiển thị cho người sử dụng một nhóm RadioButtons có liên quan với nhau.
Những chức năng không được hỗ trợ bởi điều khiển Panel
Những thuộc tính sau đây không được hỗ trợ bởi điều khiển Panel:
BorderStyle property
BackGroundImage property
AutoScroll property
2.13.11 Sử dụng các điều khiển HScrollBar và VScrollBar
Các điều khiển HScrollBar và VScrollBar cho phép bạn thêm khả năng cuộn vào những thành phần mà không được hỗ trợ cuộn theo mặc định. Những control được điều khiển bởi vài thuộc tính. Danh sách sau đây chứa các thuộc tính và những ý nghĩa của chúng.
- Minimum: Giá trị của điều khiển khi thanh cuộn bị giới hạn bên trái của HscrollBar hoặc ở trên đỉnh của VscrollBar.
- Maximum: Đây là giá trị lớn nhất có thể xảy ra của thanh cuộn. Ghi nhớ một điều là thuộc tính Value của thanh cuộn khi thanh cuộn được kéo dọc suốt đường về phía phải của HScrollBar hay xuống đáy của VScrollBar là không bằng thuộc tính Maximum. Thuộc tính Value sẽ bằng giá trị Maximum nếu thoả công thức: Maximum – LargeChange + 1
- SmallChange: ở đây, giá trị tăng dần được dùng khi người sử dụng kích vào một trong những nút mũi tên.
- LargeChange: Đây là giá trị tăng dần được dùng khi người sử dụng kích vào thanh cuộn điều khiển trên mọi cạnh của thanh cuộn.
- Value: Giá trị hiện tại của thanh cuộn. Giá trị này miêu tả vị trí của đỉnh của thanh cuộn HScrollBar và cạnh trái của thanh cuộn VscrollBar.
Một sự kiện valueChanged được thực thi khi thuộc tính Value thay đổi. Bẫy lỗi của sự kiện này là để thực hiện hoạt động nào đó, như sự thay đổi vị trí của một điều khiển, khi giá trị của thanh cuộn thay đổi. Mã sau đây trình bày việc xử lý sự kiện ValueChanges như thế nào:
C#
private void hScrollBar1_ValueChanged(object sender, System.EventArgs e) {
this.label1.Text = string.Format("Scroll Bar Value: {0}",
this.hScrollBar1.Value);
}
Hình 2.20 cho thấy một ứng dụng với một điều khiển HScrollBar được liên kết với một điều khiển Label. Những điều khiển Label hiển thị Value của HScrollBar. Khi bạn di chuyển thanh cuộn, thì nhãn được cập nhật với giá trị mới. Trong ví dụ mẫu này thì giá trị Minimum là 0, Maximum là 100, SmallChange là 10, và LargeChange là 20. Mã đầy đủ cho ví dụ mẫu này có thể được tìm thấy trong danh sách mã của cuốn sách này.
Hình 2.20 : Một ứng dụng mẫu sử dụng HscrollBar
2.13.12 Sử dụng điều khiển ImageList
Điều khiển ImageList là một điều khiển không đồ hoạ, nó chứa những hình ảnh. Những điều khiển .NET Compact Framework khác sử dụng điều khiển ImageList để khôi phục những ảnh chúng cần hiển thị
Những hình ảnh có thể được thêm vào điều khiển ở lúc thiết kế cũng như khi thực hiện. Để thêm một ImageControl cho một form, thì ta kéo một ImageControl từ ToolBox đến form ứng dụng trong Form Designer. Bây giờ kích vào nút ba chấm bên cạnh thuộc tính Images trong cửa sổ Properties. Việc làm này sẽ đưa ra cửa sổ Image Collection Editor ( Như ta nhìn thấy trong hình 3.17). Sử dụng Image Collection Editor để thêm những hình ảnh cho ImageList. Quan trọng chú ý rằng những ảnh sẽ được thay đổi kích thước đến 16 X 16 pixel theo mặc định. Bạn có thể đặt thuộc tính ImageSize nếu bạn muốn những hình ảnh sẽ được thay đổi kích thước khác nhau. Ngoài ra, những hình ảnh này cũng được đưa vào trong file resource cho ứng dụng.
Những ảnh cũng có thể được nhập vào ở thời gian thực hiện. Điều khiển ImageList trình bày một thuộc tính Images, nó đại diện cho danh sách của những hình ảnh được lưu giữ trong điều khiển. Thuộc tính Images cung cấp phương thức Add cho phép bạn thêm những hình ảnh vào danh sách của những hình ảnh. Điều thú vị là phương thức này sẽ thêm ảnh vào đầu danh sách (chỉ số là 0) - không phải là vào cuối danh sách như những phương thức khác. Phương thức Add cũng có thể chấp nhận một System.Drawing.Icon hay một System.Drawing.Image. Code dưới đây trình bày việc tải một hình ảnh từ file resource của assembly
C#
BitMap image =
new BitMap(Assembly.GetExecutingAssembly().GetManifestResourceStream("image1.jpg");
ImageList imgList = new ImageList();
imgList.Images.Add(image);
2.13.13 Sử dụng điều khiển PictureBox
Điều khiển PictureBox được sử dụng để hiển thi một ảnh. Nó có nhiều chức năng bị hạn chế. Và nó luôn luôn hiển thị ảnh ở góc trên, bên trái của điều khiển. Điều khiển PictureBox không cung cấp bất kỳ một cách nào để thay đổi kích thước của ảnh.
Điều khiển PictureBox trình bày thuộc tính Image, cái mà trình bày ảnh hiện thời để điều khiển sẽ hiển thị. Có ba cách để đưa một ảnh vào trong điều khiển PictureBox:
- Một ảnh có thể được đưa vào PictureBox bằng cách tải ảnh từ một file. Code dưới đây trình bày cách làm nó như thế nào:
C#
pictureBox1.Image =
new Bitmap(@"\Program Files\PictureBoxControl\tinyemulator_content.jpg");
Khi tải một ảnh bằng cách này bạn cần phải thêm ảnh vào đối tượng Visual Studio .NET của bạn và đặt thuộc tính Build Action trong cửa sổ Properties cho Content . Khi ứng dụng của bạn được triển khai hoặc khi một file CAB được xây dựng thì sẽ bao gồm cả ảnh.
- Một ảnh cũng có thể được tải từ file resource của ứng dụng của bạn. Đầu tiên thêm ảnh vào dự án Visual Studio .NET của bạn và đặt thuộc tính Build Action cho Embedded Resource. Việc làm này sẽ tải ảnh vào trong file resource của ứng dụng. Bạn không cần triển khai file ảnh với ứng dụng. Mã sau đây trình bày việc làm thế nào để thêm một điều khiển PictureBox với một ảnh được định vị trong file resource:
C#
pictureBox1.Image =
new Bitmap(Assembly.GetExecutingAssembly().
GetManifestResourceStream("PictureBoxControl.tinyemulator_res.jpg"));
- Cuối cùng bạn có thể tải một điều khiển PictureBox với một ảnh được định vị trong điều khiển ImageList như ta thấy trong mục “sử dụng điều khiển ImageList”. Một sự thuận lợi khi sử dụng một điều khiển ImageList là bạn có thể sử dụng điều khiển ImageList để thay đổi kích thước ảnh trước khi tải nó vào trong một điều khiển PictureBox . Theo mặc định tất cả các ảnh được tải nằm trong ImageList được thay đổi kích thước còn 16 X 16. Bạn có thể thay đổi kích thước bằng cách đặt thuộc tính ImageList.ImageSize theo kích thước mong muốn. Thay đổi thuộc tính ImageSize sẽ ảnh hưởng đến tất cả ảnh trong ImageList. Mã sau đây trình bày việc tải một điều khiển PictureBox thông qua điều khiển ImageBox như thế nào:
C#
// resize the image
imageList1.ImageSize = new System.Drawing.Size(92, 156);
// load the resized image
pictureBox1.Image = imageList1.Images[0];
Hình 2.21 hiển thị một ứng dụng đang chạy trên bộ mô phỏng Pocket PC mà cho phép người sử dụng tải một PictureBox từ một file trên file hệ thống, file resource của ứng dụng hoặc một ImageList.
Hình 2.21: Đây là một ứng dụng sử dụng điều khiển PictureBox
đang chạy trên bộ mô phỏng Pocket PC 2002.
2.13.15. Sử dụng điều khiển ListView
Điều khiển ListView tương tự như điều khiển ListBox, trong điều khiển ListView có thể hiển thị một mục chọn cho người sử dụng ở một boxlike UI. Điều khiển ListView bổ sung thêm chức năng qua ListBox. Ngoài những mục văn bản rõ ràng, đơn giản, điều khiển ListView cũng có thể trình bày những ảnh và những mục chọn mức dưới mà thêm chi tiết về mục chọn.
Những mục chọn trong một ListView có thể được hiển thị trong bốn khung nhìn khác nhau:Details view, LargeIcon view, List view, và SmallIcon view. Điều khiển ListView trình bày thuộc tính View mà nó miêu tả khung nhìn hiện thời. Thuộc tính View của kiểu System.Windows.Forms.View, là một bảng liệt kê. Danh sách sau đây mô tả những hàm thành phần của bảng liệt kê View và chúng ảnh hưởng tới điều khiển ListView như thế nào .
Mục chọn Details xuất hiện trên các dòng riêng biệt, với một số thông tin cho mục chọn được sắp xếp trong các cột.
Những mục chọn LargeIcon sẽ đưa ra các Icon lớn cùng với nhãn ở dưới.
Những mục chọn SmallIcon sẽ đưa ra các Icon nhỏ cùng với nhãn ở phía bên phải của các Icon.
Những mục chọn List sẽ đưa ra các Icon nhỏ cùng với nhãn ở phía bên phải của các Icon. Những mục chọn được sắp xếp trong các cột, nhưng nó không được hiển thị ở đầu cột.
Khi thuộc tính View đặt là Details thì ListView có thể hiện thị những mục chọn ở phía dưới, đó là hoạt động thêm thông tin có liên quan đến mục chọn. Khi ListView đặt ở chế độ Details thì các mục chọn được xuất hiện thành một danh sách, được trình bày thành bảng với mỗi hàng được ngăn cách trong các cột. Cột đầu tiên chứa đoạn văn bản và biểu tượng tuỳ chọn. Những cột tiếp theo chưa đoạn text của những mục chọn phía dưới. Hình 2.22 trình bày một ví dụ của ListView đang chạy trên bộ mô phỏng Pocket PC.
Hình 2.22: Đây là một ứng dụng sử dụng điều khiển ListView
đang chạy trên bộ mô phỏng Pocket PC 2002.
Thêm các cột cho ListView
Các cột có thể được thêm vào cho ListView ở thời điểm thiết kế hoặc ở thời điểm thực thi. Để thêm các cột vào ListView ta làm bằng cách thêm các đối tượng ColumnHeader cho thuộc tính collection cho Columns của.ListView. Những cột này chỉ được hiển thị khi ListView ở chế độ Details. Code dưới đây sẽ trình bày việc làm thế nào để thêm các cột cho điều khiển cho ListView.
C#
System.Windows.Forms.ColumnHeader columnHeader1 = new ColumnHeader();
System.Windows.Forms.ColumnHeader columnHeader2 = new ColumnHeader();
System.Windows.Forms.ColumnHeader columnHeader3 = new ColumnHeader();
columnHeader1.Text = "Name";
columnHeader2.Text = "Purpose";
columnHeader3.Text = "Availability";
listView1.Columns.Add(columnHeader1);
listView1.Columns.Add(columnHeader2);
listView1.Columns.Add(columnHeader3);
Ngoài ra, các cột cũng có thể được thêm vào cho ListView ở thời điểm thiết kế. Đầu tiên ta kéo một điều khiển ListView từ ToolBox vào trong form ứng dụng. Tiếp theo ta kích vào nút ba chấm ở bên cạnh tên thuộc tính, trong của sổ Properties. Việc làm này sẽ đưa ra cửa sổ ColumnHeader Collection Editor (như ta thấy trong hình 3.24). Sử dụng các nút Add và Remove để thay đổi danh sách của các đối tượng ColumnHeader trong điều khiển ListView.
Hình 2.23: Cửa sổ ColumnHeader Collection Editor.
Thêm những mục chọn cho điều khiển ListView
Sau khi thêm các cột cho điều khiển ListView ta có thể thêm các mục chọn. Lớp ListViewItem mô tả những item trong một điều khiển ListView và lớp ListViewSubItem mô tả những item ở phía dưới có liên quan đến ListViewItem. Lớp ListViewItem trình bày thuộc tính collection SubItems, là cái mà mô tả danh sách những item ở phía dưới có liên quan đến một item.
Một đối tượng ListViewItem có thể hiển thị một ảnh cùng với đoạn text. Một ImageList phải được sử dụng để kết hợp một ảnh với một đối tượng ListViewItem. Điều khiển ListView trình bày hai thuộc tính: SmallImageList và LargeImageList. LargeImageList.ImageList chứa ảnh để sử dụng khi thuộc tính View thiết đặt là View.LargeIcon. SmallImageList.ImageList chứa ảnh để sử dụng khi thuộc tính View thiết đặt cho bất kì cái gì khác với View.LargeIcon.
Ngoài ra, những đối tượng ListViewItem cũng có thể được thêm vào ở thời điểm thiết kế. Đầu tiên ta kích vào điều khiển ListView, cái mà sẽ chứa những item. Nếu những điều khiển ImageList đã được định hình cho điều khiển ListView thì ta gán những điều khiển ImageList cho thuộc tính LargeImageList và thuộc tính SmallImageList trong của sổ Properties. Tiếp theo ta kích vào nút ba chấm bên cạnh thuộc tính Items trong của sổ Properties. Một cửa sổ ListViewItem Collection Editor sẽ xuất hiện (như ta thấy trong hình 2.24). Ta sử dụng nút Add và nút Remove để thay đổi nhũng item ở trong ListView. Đặt thuộc tính ImageIndex nếu một ImageList đã được định hình cho ListView. Nếu bạn cần thêm những mục chọn phía dưới cho các đối tượng ListViewItem thì bạn kích vào nút ba chấm bên cạnh thuộc tính SubItems trong cửa sổ soạn thảo. Khi đó cửa sổ ListViewSubItem Collection Editor sẽ xuất hiện (như hình 2.24). Và ta lại sử dụng nút Add và nút Remove để thay đổi collection của nhứng item phía dưới.
Hình 2.24: Cửa sổ ListViewItem Collection Editor
Hình 2.25: Cửa sổ ListViewSubItem Collection Editor.
Chương 3: Tìm hiểu ADO.NET trên .NET Compact Framework
3.1 Giới thiệu ADO.NET trên .NET Compact Framework
ADO.NET là tên dựa vào tập hợp các lớp, được sử dụng cho việc truy cập cơ sở dữ liệu trong lập trình .NET toàn cầu. Tập hợp các lớp sẵn có trong thế giới ADO.NET là rất nhiều và có thể chiếm ưu thế. Tuy nhiên, việc xử lý dữ liệu và ngay cả những kết nối đơn giản tới các máy chủ cơ sở dữ liệu từ xa có thể được thực hiện với một vài dòng code. Chương này được dành cho việc trình bày việc làm thế nào để thao tác dữ liệu cục bộ trên thiết bị. Nó đặt nền tảng cho các chương sau mà có liên quan đến ADO.NET
3.2. Lưu dữ liệu với DataSet
DataSet là lớp khung cơ bản cho thao tác dữ liệu với .NET Compact Framework. DataSet có thể được hiểu như một dụng cụ cơ sở dữ liệu quan hệ nhỏ trong chính nó. Nó lưu giữ các bảng trong bộ nhớ và được tổ chức thành các bảng, các hàng, và các cột, và nó cho phép những người phát triển thực hiện những thao tác cơ sở dữ liệu chuẩn, như việc thêm và loại bỏ dữ liệu, sắp xếp, và kiểm tra những ràng buộc.
Làm việc với .NET Compact Framework khó hơn làm việc với desktop .NET Framework, bởi vì có nhiều sự quá tải (overloads) không thể tìm thấy trên .NET Compact Framework và nó dễ dàng làm cho quá trình hoạt động lộn xộn, làm cho quá trình thực thi kéo dài.
Toàn bộ chiến lược để xử lý dữ liệu trong lập trình ADO.NET là làm đầy một DataSet từ một cơ sở dữ liệu lớn, bao gồm cả việc lưu dữ liệu trong DataSet , và sau đó viết lại bất kỳ sự thay đổi nào cho cơ sở dữ liệu. Chương này bàn luận việc làm thế nào để đưa dữ liệu vào DataSet bởi việc chèn dữ liệu theo chương trình và để thực hiện những thao tác đơn giản trên dữ liệu.
3.2.1 Tìm hiểu bên trong DataSet: DataTables, DataRows, và DataColumns.
DataSet chứa một hoặc nhiều DataTable. Mỗi DataTable tương ứng với một bảng trong cơ sở dữ liệu quan hệ. Nó có một tập hợp các DataRow, và mỗi DataRow có một tập các DataColumn mà nó thực sự lưu giữ dữ liệu. Để tạo ra các DataSet, DataTable, và DataColumn dễ dàng và dễ làm việc với chúng, ta đặt tên cho chúng. Hình 6.1 là sơ đồ khối miêu tả toàn bộ cấu trúc của một DataSet lưu dữ liệu cho một PhoneBook đơn giản.
Hình 6.1: Đây là một DataSet mô tả cấu trúc của một phone book.
Bạn có thể sử dụng một DataTable để lưu dữ liệu được kết hợp với một bảng,
Các file đính kèm theo tài liệu này:
- Tìm hiểu về công nghệ NET Compact Framework và lập trình ứng dụng trên Pocket PC.doc