Tải bản đầy đủ (.pdf) (6 trang)

lập trình windows form với các control nâng cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (474.43 KB, 6 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Lab 05: </b>


<b>LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO </b>


(Các control trình bày dữ liệu dưới dạng bảng lưới)



<b>A. MỤC TIÊU: </b>


 Sử dụng Visual Studio .NET 2010/2012/2013 tạo ứng dụng dạng Windows Forms với các
control nâng cao dạng bảng, lưới.


 Làm quen với việc sử dụng các control trên form như:


 PictureBox: Đối tượng chưa hình ảnh


 DateTimePicker: Control hiện và chọn giá trị ngày/tháng/năm


 GroupBox: Nhóm các đối tượng về cùng nhóm


 Sử dụng DataTable để chứa thông tin dạng bảng


 Sử dụng DataGridView để hiện thị nội dung chứa trong DataTable.


 Sử dụng ListView để hiển thị thông tin dạng bản


<b>B. NỘI DUNG: </b>


<b>Bài tập 1:</b> Xây dựng ứng dụng Windows Forms mô phỏng theo mô tả như sau:


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Hình 1: Màn hình minh họa ứng dụng E-Order.
<i><b>Thao tác sử dụng</b>: </i>



 Người phục vụ sẽ chọn tên bàn được list trong ComboBox, sau đó tùy theo yêu cầu gọi món
của client mà người phục vụ sẽ chọn món ăn, thức uống thơng qua danh mục món ăn được
thể hiện bởi danh sách các button. Mỗi lần chọn món ăn sẽ bổ sung thêm số lượng gọi món
là 1, ví dụ 2 lần chọn Buger Phơ mai Bị thì số lượng là 2 và danh mục gọi món của bàn đó
sẽ hiển thị trong danh sách bên dưới.


 Kết thúc quá trình gọi món ăn thì người phục vụ sẽ chọn chức năng “Order”, thông tin này
sẽ được gởi cho đầu bếp…


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<i><b>Lưu ý:</b></i> Phần tạo đối tượng DataTable và khởi tạo cấu trúc (Column) của DataTable được đặt trong


<b>hàm xử lý sự kiện Load</b> của Form.


Mỗi khi click vào món ăn thì chương trình sẽ tìm trong DataTable này xem có món ăn đó
chưa, nếu chưa có thì thêm dịng mới vào với tên món ăn và số lượng là 1. Ngược lại đã có chọn
món này thì số lượng của nó tăng 1.


Cách thêm một dịng (món ăn) mới vào DataTable <b>tbOrder</b>
<b>DataRow r = tbOrder.NewRow();//tạo dòng mới </b>
<b>// thiết lập cột FoodName với món ăn được chọn </b>


<b>r["FoodName"] = <tên món ăn được chọn>; </b>
<b>r["Quantity"] = 1; // thiết lập cột Quantity</b>


<b>tbOrder.Rows.Add(r); // thêm vào bảng</b>


Sử dụng thuộc tính DataSource của DataGridView để kết buộc với dữ liệu trong DataTable,
phần code này khai báo sau khi khởi tạo DataTable (trong hàm xử lý sự kiện load của form).


VD: tên của DataGridView trong chương trình là <b>dataGridView1</b> và biến DataTable là <b>tbOrder</b>



thì code kết buộc như sau:


<b>// binding nội dung trong DataTable cho DataGridView </b>


<b>dataGridView1.DataSource = tbOrder; </b>
<b>Bài tập 2</b>:


 Việc tìm kiếm một món ăn có trong bảng tbOrder đơn giản là duyệt qua từng dòng và kiểm tra
tên của món ăn. Tuy nhiên, ta có thể làm cách khác bằng việc dùng hàm Find của thuộc tính
Rows trong DataTable. Nếu muốn sử dụng hàm Find được thì bảng Order phải được thiết lập
khố chính. Do đó trong bảng tbOrder trên ta có thể tạo khố chính là thuộc tính “FoodName”
và sau đó tìm kiếm theo thuộc tính này.


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<i><b>Bài tập 3: Thêm vào project form frmNhanvien với listview như sau : </b></i>


Hình 1: Màn hình minh họa ứng dụng
<b>Yêu cầu : </b>


Nhập thông tin vào phần “thông tin chi tiết”, khi nhấn các nút lệnh sẽ thực hiện như sau:


 Nút Thêm: Thêm các thông tin vào listview. Chú ý : Kiểm tra thông tin họ tên nhân viên
khơng được rỗng, nếu rỗng thì khơng cho thêm


 Nút Xóa: Xóa 1 dòng trên listview (chú ý nếu người dùng chưa chọn 1 dịng trên
listview thì u cầu người dùng phải chọn rồi mới xóa)


 Nút Sửa: Cập nhật thơng tin đã điều chỉnh 1 dịng trên listview


 Thốt: thốt khỏi chương trình



 Khi chọn 1 dịng trên listview thì nội dung của dịng được chọn sẽ được thể hiện trên các
ô “Thông tin chi tiết”


<b>Hướng dẫn : </b>


<b>Bước 1: Thiết kế Form với các con trol được chỉ định như sau: </b>


STT Tên Control Loại Tên hàm xử lý


1 lsvNhanVien ListView lsvNhanVien_SelectedIndexChanged
2 txtHoTen TextBox


3 dtpNgaySinh DateTimePicker
4 txtDiaChi TextBox


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Đối với Listview lsvNhanvien thì tiếp tục thực hiện định dạng như sau:


 Click phải Listview hiện ra menu tùy chỉnh của listview, chọn <i>Edit Columns</i>


Hình 2: Màn hình chọn chức năng điều chỉnh ListView.
 Lần lượt thêm các cột từ nut Add (nếu xó bỏ chọn Remove)


 Khai báo các thông tin


o Name: Tên cột


o Text: Tiêu đề cột


o Width: Độ rộng cột



 Ok để hịa tất thiết kế các cột


Hình 3: Màn hình thiết kế, điều chỉnh ListView.
 Trở lại màn hình thiết kế Form chỉ định các thuộc tính cho listview:


 FullRowSelect = true;//cho phép chọn cả dịng


 GridLine= true;//Kẻ lưới


 View = Details;//Hiển thị thơng tin chi tiết dạng lưới


<b>Bước 2: Viết code cho các sự kiện </b>


 <i><b>Để thêm 1 dòng vào cho listview :</b></i> sử dụng ListViewItem


ListViewItem lvi = lsvNhanVien.Items.Add(txtHoten.Text);
lvi.SubItems.Add(dtpNgaySinh.Value.ToShortDateString());


lvi.SubItems.Add(txtDienThoai.Text);


lvi.SubItems.Add(txtDiaChi.Text);


 <i><b>Chọn 1 dòng trên listview</b></i> : sử dụng sự kiện lsvNhanVien_SelectedIndexChanged


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

if (lsvNhanVien.SelectedItems.Count > 0)
{


txtHoten.Text =



lsvNhanVien.SelectedItems[0].SubItems[0].Text;
dtpNgaySinh.Text =


lsvNhanVien.SelectedItems[0].SubItems[1].Text;
txtDienThoai.Text =


lsvNhanVien.SelectedItems[0].SubItems[2].Text;
txtDiaChi.Text =


lsvNhanVien.SelectedItems[0].SubItems[3].Text;
}


 <i><b>Nhấn nút xóa :</b></i> Dùng phương thức remove hoặc removeAt của listview


//kiểm tra listview đã có dịng được chọn hay chưa?


if (lsvNhanVien.SelectedItems.Count > 0)


{


lsvNhanVien.Items.Remove(lsvNhanVien.SelectedItems[0]);
}


 <i><b>Nhấn nút sửa</b></i> : Cập nhật lại thông tin cho listview


if (lsvNhanVien.SelectedItems.Count > 0)


{


lsvNhanVien.SelectedItems[0].SubItems[0].Text =txtHoten.Text;


lsvNhanVien.SelectedItems[0].SubItems[1].Text =


dtpNgaySinh.Value.ToShortDateString();
lsvNhanVien.SelectedItems[0].SubItems[2].Text =


txtDienThoai.Text;
lsvNhanVien.SelectedItems[0].SubItems[3].Text =


txtDiaChi.Text;
}


</div>

<!--links-->

×