[Bài 08] - ComboBox trong C#


Chào các bạn!

Hôm nay tiếp tục series lập trình winform cơ bản với ngôn ngữ C#, mình xin giới thiệu với các bạn một control mới rất hay sử dụng trong các Form đăng ký thông tin. Chính là ComboBox. 


GIỚI THIỆU

Một ComboBox hiển thị như một Textbox kết hợp với một Listbox, cho phép người dùng lựa chọn các mục từ danh sách hoặc nhập một giá trị mới.




THUỘC TÍNH CỦA COMBOBOX

   ComboBox cũng có các thuộc tính giống như các Control cơ bản khác. Nhưng có thêm các thuộc tính mới dạng DropDown như DropDownStyle, DropDownWidth, MaxDropDownItems...
Thuộc tính cơ bản của Control

- DropDownStyle: Thuộc tính DropDownStyle xác định các mà danh sách được hiển thị. Thuộc tính DropDownStyle cũng xác định xem phần văn bản có thể được chỉnh sửa hay không.
Với:
- Simple: hiện ngay list item có sẵn.
- DropDownList: là danh sách hiện ra cố định, không thể tự nhập/chỉnh sửa item trong ComboBox.
DropDown: có thể thêm item mới bằng tay và chỉnh sửa Item đã chọn.

Các bạn hãy thử chỉnh sửa các thứ này ngay trong code của mình:
Vd: 
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;

  
 - MaxDropDownItems: Xác định số lượng Item tối đa khi mở danh sách sẽ hiện ra cho các bạn


PHƯƠNG THỨC CỦA COMBOBOX

   Phương thức thường thấy nhất là các phương thức thêm/xóa/sửa dữ liệu trong ComboBox. Để thêm vào ta dùng phương thức Add, để xóa tất cả Item đã thêm ta dùng phương thức Clear, để xóa item cụ thể ta dùng phương thức Remove,...
//Thêm dữ liệu
comboBox1.Items.Add("IceTea Việt");
comboBox1.Items.Add("Lập trình cuộc sống");
comboBox1.Items.Add("Xe đạp");

//Xóa dữ liệu cụ thể bằng chính Text của dữ liệu đó
comboBox1.Items.Remove("Xe đạp");
//Ta cũng có thể xóa theo chỉ số của item đó trong List dữ liệu
comboBox1.Items.RemoveAt(2); //Xóa item thứ 3 trong dữ liệu, vì 2 là index
 
   LẤY DỮ LIỆU TỪ COMBOBOX: 
   Có thể lấy dữ liệu băng nhiều cách, tham khảo đoạn code sau
//Lấy trực tiếp từ thuộc tính Text của ComboBox
//Nhưng nếu ComboBox chưa được chọn thì sẽ không có giá trị
string var;
var = comboBox1.Text;

//Lấy giá trị qua thuộc tính SelectedItem
var item = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
//Hoặc lấy theo Text mình muốn
var item = this.comboBox1.GetItemText(this.comboBox1.FindStringExact("Xe đạp"));

SỰ KIỆN CỦA COMBOBOX
   Sự kiện của ComboBox không nhiều, sự kiện mặc định của nó là comboBox_SelectedIndexChanged, xảy ra khi chúng ta chọn một Item mới trong ComboBox.

   Bài viết về ComboBox mình đến đây là dài đối với các bạn rồi, mình còn một sô vấn đề muốn nói về ComboBox nữa, thôi thì để bài sau vậy.
Như thường lệ là một đoạn code để các bạn đoán kết quá. Đoạn này có vẻ dễ nhỉ :D
private void Form1_Load(object sender, EventArgs e)
{
        comboBox1.Items.Add("weekdays");
        comboBox1.Items.Add("year");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
        comboBox2.Items.Clear();
        if (comboBox1.SelectedItem == "weekdays")
        {
            comboBox2.Items.Add("Sunday");
            comboBox2.Items.Add("Monday");
            comboBox2.Items.Add("Tuesday");
         }
         else if (comboBox1.SelectedItem == "year")
         {
            comboBox2.Items.Add("2012");
            comboBox2.Items.Add("2013");
            comboBox2.Items.Add("2014");
         }
}
   
TỔNG KẾT
   
Bằng cách kết hợp Textbox và một danh sách drop-down thông thường, Combobox đại diện cho một control thực sự hữu ích, một hybrid widget trong C# Winform. Nó cũng tạo ra ý tưởng về các hộp thoại dialogs, nơi mà sẽ có các gợi ý cho người dùng từ danh sách drop-down và lại chấp nhận được tất cả giá trị input bất kì

   Bài sau về ComboBox mình sẽ gửi đến các bạn cách gán một DataSource với ComboBox, AutoComplete với ComboBox, ở một cách nhìn đơn giản nhất :D Có lẽ mình sẽ viết bài đó sau khi hướng dẫn cho các bạn một chút về DataSet, DataTable

   Chào các bạn, chúc các bạn học tốt!


Post a Comment

[facebook][blogger]

Contact Form

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget