• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[C# - VB.Net] Tạo ComboBox trong DataGridView

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

[C# - VB.Net] Tạo ComboBox trong DataGridView

Gửi bàigửi bởi anhtuyenbk » T.Bảy 29/03/2008 2:06 pm

Tên bài viết: Tạo ComboBox trong DataGridView
Tác giả: Nguyễn Anh Tuyên + MSDN
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Tạo ComboBox trong DataGridView


[C# - VB.Net] Tạo ComboBox trong DataGridView

Chắc các bạn cũng như mình khi làm việc với CSDL đều sử dụng DataGridView để hiển thị CSDL nhưng đôi khi các bạn lại muốn các cell bên trong DataGridView là những Combobox để ngừoi dùng có thể chọn những giá trị được hiển thị bên trong Combobox chứ không được nhập trực tiếp vào DataGridView. Điều này rất có lợi khi bạn muốn ràng buộc những giá trị được nhập vào DataGridView.
Sau một thời gian suy nghĩ và miệt mài làm việc cuối cùng mình cũng tìm được cách để tạo ra các combobox trong DataGridView. :D :D

Hình ảnh

1. Các hàm cần thiết
Các bạn hãy copy các hàm cần thiết sau vào Project
C#

Mã: Chọn hết

  1. internal static DataGridViewComboBoxColumn CreateComboboxColumn(String ColumnName, String HeaderText,
  2.                                          DataTable pTable, String ColumnNameDisplay)
  3.         {
  4.             DataGridViewComboBoxColumn objColumn = new DataGridViewComboBoxColumn();
  5.             objColumn.Name = ColumnName;
  6.             objColumn.HeaderText = HeaderText;
  7.             objColumn.DataPropertyName = ColumnName;
  8.             objColumn.DropDownWidth = 160;
  9.             objColumn.Width = 100;
  10.             objColumn.MaxDropDownItems = 10;
  11.             objColumn.FlatStyle = FlatStyle.Standard;
  12.             objColumn.DataSource = pTable;
  13.             objColumn.DisplayMember = ColumnNameDisplay;
  14.             return objColumn;
  15.         }
  16.  

VB.Net

Mã: Chọn hết

  1. Friend Shared Function CreateComboboxColumn(ByVal ColumnName As String, ByVal HeaderText As String, ByVal pTable As DataTable, ByVal ColumnNameDisplay As String) As DataGridViewComboBoxColumn
  2.      Dim objColumn As New DataGridViewComboBoxColumn()
  3.      objColumn.Name = ColumnName
  4.      objColumn.HeaderText = HeaderText
  5.      objColumn.DataPropertyName = ColumnName
  6.      objColumn.DropDownWidth = 160
  7.      objColumn.Width = 100
  8.      objColumn.MaxDropDownItems = 10
  9.      objColumn.FlatStyle = FlatStyle.Standard
  10.      objColumn.DataSource = pTable
  11.      objColumn.DisplayMember = ColumnNameDisplay
  12.      Return objColumn
  13.  End Function
  14.  

2. Giải thích các tham số
ColumnName : Tên của column trong DataGridView
Headtext: Text sẽ hiện thị trên Header của Column
pTable : Đối tượng DataTable chứa cột giá trị cần add vào combobox
ColumnNameDisplay : tên của cột trong DataTable mà giá trị của cột sẽ được hiển thị trên ComboBox

3. Cách sử dụng

Ví dụ : Ta có một DataTable bên trong nó có cột “STT”.
Bây giờ ta muốn add lên DataGridView một combobox column : nó có tên là “STTSV”, phần hiển thị trên Header là “STTSV:. Column này sẽ lấy dữ liệu của cột STT trong DataTable

Mã: Chọn hết

  1. DataGridViewComboBoxColumn objCol = CreateComboboxColumn("STTSV", "STTSV", objDataTableDanhsach, "STT");            
  2. dataGridView1.Columns.Add(objCol);
  3.  

Mã: Chọn hết

  1. Dim objCol As DataGridViewComboBoxColumn = CreateComboboxColumn("STTSV", "STTSV", objDataTableDanhsach, "STT")
  2. dataGridView1.Columns.Add(objCol)

Hướng dẫn đến đây là hết, chúc các bạn thành công. ;;) ;;)


Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

nghiadiahoang
Bài viết: 4
Ngày tham gia: T.Sáu 14/11/2008 11:48 pm

Re: [C# - VB.Net] Tạo ComboBox trong DataGridView

Gửi bàigửi bởi nghiadiahoang » CN 26/04/2009 1:58 pm

Bài này chuẩn tớ cũng đang đi kiếm bài hướng dẫn về cách tạo combox. Viết nhiều TUT nữa nha bạn :x

nth4
Thành viên chính thức
Thành viên chính thức
Bài viết: 10
Ngày tham gia: T.Hai 07/04/2008 10:53 am

Re: [C# - VB.Net] Tạo ComboBox trong DataGridView

Gửi bàigửi bởi nth4 » T.Ba 28/04/2009 11:21 pm

Cho mình hỏi cái nha.

Với hướng dẫn trên là bạn tạo trước 1 columncombobox rồi người dùng chọn.

Còn nếu datagirdview lấy dữ liệu từ CSDL lên, sau đó mình muốn sửa 1 cell trong Row của Datagridview, và cell này là combobox thì mình phải làm sao?

M0nkey.D.NH
Bài viết: 1
Ngày tham gia: T.Ba 18/10/2011 8:17 am

Re: [C# - VB.Net] Tạo ComboBox trong DataGridView

Gửi bàigửi bởi M0nkey.D.NH » T.Ba 18/10/2011 8:27 am

Anh ơi cho em hỏi bây giờ em muốn Load 2 trường từ 1 bảng của Access lên Combobox thì làm thế nào ạ. Mong mọi người giúp đỡ
Code load Combobox của em như thế này, Mới load đc 1 trường.
  1.  Public Sub LoadCombobox(ByVal _cbb As ComboBox)
  2.         Dim dt As DataTable
  3.         dt = Me.ReturnDataSet("Select * From Loai_LK").Tables(0)
  4.         _cbb.DataSource = dt
  5.         _cbb.DisplayMember = "TenLLK"
  6.         _cbb.ValueMember = "MaLoaiLK"
  7.     End Sub


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.3 khách