Sử Dụng Combobox C#

Sử dụng combobox c# Home code c ComboBox là một control không xa lạ gì với tất cả chúng ta. Đây là control chuẩn của Windows, cũng như trong .Net FrameWork. Nó cho phép hiển thị danh sách theo dạng list, ở trạng thái bình thường nó khá giông textbox, nhưng có mũi tên sổ xuống để chọn danh sách. Đây là control khá hữu dụng, bài viết sau giúp bạn khai thác và sử dụng một số chức năng của control này.Để minh họa tính năng của ComboBox, chúng ta thử áp dụng nó vào một ví dụ như sau.Giả sử chúng ta có danh sách các nhân viên, chúng ta muốn hiển thị nó lên ComboBox. Mỗi nhân viên có mã số, tên và mô tả. Khi chọn một nhân viên trên combobox thì tên nhân viên thay đổi và mô tả nhân viên cũng thay đổi theo.Chèn Combobox lên Form:Bạn có thể đưa ComboBox vào form bằng cách kéo đối tượng ComboBox trên thanh ToolBox vào Form.Để đưa dữ liệu danh sách vào combobox bạn có thể add các đối tượng qua biến Items hoặc gán danh sách thẳng qua biến DataSource.ComboBox có thể hiển thị được danh sách các object (là thể hiện của một lớp nào đó), hoặc danh sách các chuổi. Dữ liệu danh sách hiển thị của comboBox chứa trong biến items. Đây là kiểu dữ liệu dạng danh sách.Muốn hiển thị danh sách Object (ví dụ là NhanVien) đầu tiên bạn phải gán các item trong danh sách của bạn vào thuộc tính Items của comboBox. Sau đó phải quy định thuộc tính hiển thị và thuộc tính giá trị của item trên combobox được chọn. (Lưu ý nếu không thiết lập tên biến hiển thị và biến giá trị item được chọn thì .Net sẽ mặc định hiển thị trên Class lên combobox)// thêm nhân viên vào comboboxNhanVien nv1 = new NhanVien(0, "Trần Đức Văn", "Lập trình viên");comboBoxNhanVien.Items.Add(nv1);//Nội dung sẽ hiển thị lên comboboxcomboBoxNhanVien.DisplayMember = "TenNhanVien";//Giá trị nhận được ứng với từng nội dung được chọn trên comboboxcomboBoxNhanVien.ValueMember = "MaNhanVien";Muốn hiển thị danh sách chuổi bạn chỉ cần add các chuổi muốn hiển thị vào items// hiển thị danh sáchcomboBoxNhanVien.Items.Add("Trần Đức Văn");comboBoxNhanVien.Items.Add("Nguyễn Văn Lập");comboBoxNhanVien.Items.Add("Trần Đình Chính");Thường thì chúng ta có danh sách và mong muốn hiến thị danh sách nay lên combobox. May mắn là trong .Net việc này hổ trợ khá tốt, bạn chỉ cần chuẩn bị danh sách cần hiển thị (DataSource), thuộc tính cần hiển thị (Display Member), và giá trị của thuộc tính (ValueMember).Ở đây chúng ta có một danh sách các nhân viên (ở ví dụ này dùng lớp List để làm danh sách, chúng ta có thể sử dụng mảng hoặc lớp thuộc dạng collection nào cũng có thể đượcLớp nhân viênclass NhanVien{ // Mã nhân viên private int maNhanVien; // Tên nhân viên private string tenNhanVien; // Thông tin nhân viên private string thongTinNhanVien; public NhanVien() { } public NhanVien(int maNhanVien, string tenNhanVien, string thongTinNhanVien) { this.maNhanVien = maNhanVien; this.tenNhanVien = tenNhanVien; this.thongTinNhanVien = thongTinNhanVien; }} Tạo danh sách các nhân viênNhanVien nv1 = new NhanVien(0, "Trần Đức Văn", "Lập trình viên");NhanVien nv2 = new NhanVien(1, "Nguyễn Văn Lập", "Marketing");NhanVien nv3 = new NhanVien(2, "Trần Đình Chính", "Giám đốc");// đưa nhân viên vào danh sách nhân viêndanhSachNhanVien = new List();danhSachNhanVien.Add(nv1);danhSachNhanVien.Add(nv2);danhSachNhanVien.Add(nv3);Gán danh sách này cho combobox, và định nghĩa trường hiển thị, trường giá trị.comboBoxNhanVien.DataSource = danhSachNhanVien;//Nội dung sẽ hiển thị lên comboboxcomboBoxNhanVien.DisplayMember = "TenNhanVien";//Giá trị nhận được ứng với từng nội dung được chọn trên comboboxcomboBoxNhanVien.ValueMember = "MaNhanVien";Và như vậy chúng ta đã hiển thị được danh sách nhân viên lên combobox.Bắt sự kiện trên ComboBoxBây giờ chúng ta muốn mỗi khi chọn một nhân viên thị sẽ hiển thị thông tin của nhân viên đó lên. Để làm được việc này chúng ta sẽ bắt sự kiện trên ComboBox này.ComboBox trong .Net có rất nhiều sự kiện, tùy vào hoàn cảnh mà bạn có thể bắt và xử lý sự kiện đó.Bảng sự kiện của ComboBox.Ở đây chúng ta bắt sự kiện SelectedIndexChanged. Sự kiện này sãy ra khi người dùng thay đổi lựa chọn item trên combobox.Chúng ta đúp chuột vào vùng sự kiện sau đó .Net sẽ generate ra hàm để chúng ta xử lý sự kiện.Như lúc đầu đã nói mỗi nhân viên có mỗi mã số. Khi người dùng chọn tên một nhân viên thì ứng với một mã số được chọn. Chúng ta sẽ sử dụng mã số đó để lấy ra thông tin nhân viên và hiển thị lên màn hình.//// Hàm xử lý sự kiện thay đổi lựa chọn trên combobox//////private void comboBoxNhanVien_SelectedIndexChanged(object sender, EventArgs e){ // lấy ra nhân viên được chọn NhanVien nvDuocChon = (NhanVien) comboBoxNhanVien.SelectedItem; // hiển thị thông tin nhân viên lbThongTinNV.Text = nvDuocChon.ThongTinNhanVien;}Vậy là khi chọn một nhân viên bất kỳ trên Combobox thì nội dung thông tin nhân viên sẽ hiển thị tương ứng lên Form.Bạn có thể lấy giá trị của ComboBox qua biến SelectedIndex, Hoặc có thể lấy giá trị nội dung trên combobox bằng cách gọi thuộc tính .Text (giống như TextBox).Tính năng AutoComplete (gợi ý)Auto Complete là tính năng khá hay, khi danh sách khá dài mà bạn muốn tìm một đối tượng nào đó thì bạn có thể gõ vào luôn combobox. ComboBox sẽ hiển thị lên danh sách gợi ý cho bạn.Khi gõ chữ “n” Combobox sẽ liệt kê những nhân viên có tên bắt đầu bằng “n”AutoComplete trong combobox gồm có kiểu Gợi ý và dữ liệu.
    o Kiểu gợi ý( AutoCompleteMode):
  •  None: không kích hoạt chức năng gợi ý (Auto complete)
  •  Append: gợi ý sẽ được điển thằng vào combobox
  •  Suggest: chỉ hiển thị danh sách gởi ý
  •  Append Suggest: tự động điền gởi ý và hiển thị danh sách gởi ý.
    o Nguồn dữ liệu gởi ý (AutoCompleteSource): Có nhiều source mà .Net hổ trợ, Ở đây chúng ta sử dụng Source từ các list item (ListItems) là tên các nhân viên trong combobox.
comboBoxNhanVien.AutoCompleteMode = AutoCompleteMode.Suggest;comboBoxNhanVien.AutoCompleteSource = AutoCompleteSource.ListItems;

Đặt hàng ngay

Để nhận hàng trong 1-2 ngày tới Hà Nội Khác

Đặt hàng Bạn sẽ được xác nhận trong Messenger

Tất cả

Chưa đọc

Choose a category: all todo soup Enter search term:

Từ khóa » Gán Một Datasource Với Combobox