Trong bài viết này chúng ta sẽ tìm hiểu về ComboBox trong lập trình Csharp WindowsForm. ComboBox là một control trong đó chứa danh sách các phần tử (gọi là các Item), các phần có giá trị string và được gán index để truy xuất. Khác với ListBox có thể hiển thị tất cả các giá trị cùng lúc, còn ComboBox chỉ có thể hiển thị duy nhất 1 kết quả. Lần này ta sẽ tìm hiểu ComboBox thông qua ví dụ nhỏ bên dưới để thấy được một số thuộc tính cũng như phương thức thao tác trên Item của ComboBox, ngoài ra tôi còn bổ sung 1 số phần nhỏ có liên quan đến các control khác – thiết nghĩ cũng rất có ích cho các bạn!

1. Csharp ComboBox

Trong ví dụ này sẽ minh họa cách thêm bớt phần tử (Item) cho ComboBox – Tương ứng với chức năng “Add Item” và “Remove Item”.

  • Khi thêm mới 1 phần tử cho ComboBox thì phần tử đó sẽ được thêm vào cuối cùng, và đối số chính là giá trị (Text : string) của phần tử đó.
  • Trường hợp xóa phần tử trong ComboBox ta sẽ có 2 cách tiếp cận: Cách thứ nhất là xóa thông qua số thứ tự (index) của của phần tử đó. Cách thứ hai là thông qua giá trị (Text : string).
  • Ở bên dưới ta có 3 textBox để theo dõi thông tin cập nhật của ComboBox: Selected Index cho biết index của Item đang được chọn. Text of Index trả về giá trị của Item được chọn. Sum of Items là tổng số Item trong ComboBox.

ComboBox | Control trong Lập trình Windows Form | Csharp
2. Phân tích Code

  • Ta bắt đầu từ cái đơn giản nhất là hàm updateInfo(); dùng để cập nhật thông tin ComboBox khi có thay đổi.
  • Để tránh trường hợp phát sinh lỗi (exception) khi Button được nhấn trong khi textbox4 bên trên không có giá trị, tôi thêm vào event textBox4_TextChanged(). Khi textBox4 rỗng thì thuộc tính enable của button1 sẽ false, và ngược lại button1 được enable khi tồn tại giá trị bên trong textbox4.
  • radioButton1_CheckedChanged() có nhiệm vụ disable hoạt động của radioButton3 (At Index) khi chọn chức năng Add Item vì ở đây ta không thêm phần tử vào comboBox theo chỉ số Index, mọi phần tử thêm mới đều được xếp sau cùng.
  • Mọi xử lý chính của chương trình đều nằm trong button1_click();
  • Hàm thêm Item cho comboBox: comboBox1.Items.Add(textBox4.Text);
  • Hàm xóa Item tại index cho trước comboBox: comboBox1.Items.RemoveAt(Convert.ToInt32(textBox4.Text));
  • Hàm xóa Item theo giá trị Text của Item: comboBox1.Items.Remove(textBox4.Text);
  • Khi xóa Item theo giá trị Text ta cần kiểm soát trường hợp xảy ra lỗi khi giá trị nhập vào không tồn tại trong comboBox, ta kiểm soát trường hợp này bằng cách cho duyệt tất cả các Item nếu đến Item nào thỏa mãn thì xóa nó và dừng chương trình. Nếu duyệt hết đồng nghĩa với việc không tồn tại giá trị cần xóa.

ComboBox | Control trong Lập trình Windows Form | Csharp
Qua bài viết này chắc bạn đã nắm được hết những điều cần thiết để điều khiển hoạt động của comboBox. Không chỉ thế tôi tin rằng với ví dụ trên một chút nào đó cho bạn kỷ năng trong việc kiểm soát các lỗi phát sinh dù là rất nhỏ – đây là những kỹ năng không thể thiếu trong Lập trình windows Form, một khi bạn hiểu rõ bản chất của từng trường hợp có thể phát sinh lỗi thì khi làm một chương trình lớn bạn sẽ dễ dàng hơn rất nhiều. Trong lập trình giao diện windows Form thì việc quản lý lỗi phát sinh trong lúc tùy biến control thường rất phức tạp, đa phần dẫn đến trường hợp bể khung, các control xếp lộn không theo trật tự, mất yếu tổ thẫm mĩ, trực quan…

MicrosoftTech.Net

Advertisements

Posted on November 3, 2012, in Csharp, Win Form and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: