Cấp bậc tác giả:

DOTNET

Tạo ComboBox trong DataGridView

Được viết bởi QuangIT ngày 31/07/2012 lúc 12:43 PM
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
  • 0
  • 6247
Tải tệp tin: Click ở đây

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.

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#
internal static DataGridViewComboBoxColumn CreateComboboxColumn(String ColumnName, String HeaderText,
DataTable pTable, String ColumnNameDisplay)
{
DataGridViewComboBoxColumn objColumn = new DataGridViewComboBoxColumn();
objColumn.Name = ColumnName;
objColumn.HeaderText = HeaderText;
objColumn.DataPropertyName = ColumnName;
objColumn.DropDownWidth = 160;
objColumn.Width = 100;
objColumn.MaxDropDownItems = 10;
objColumn.FlatStyle = FlatStyle.Standard;
objColumn.DataSource = pTable;
objColumn.DisplayMember = ColumnNameDisplay;
return objColumn;
}
VB.Net
· Friend Shared Function CreateComboboxColumn(ByVal ColumnName As StringByVal HeaderText As String,ByVal pTable As DataTable, ByVal ColumnNameDisplay As String) As DataGridViewComboBoxColumn
· Dim objColumn As New DataGridViewComboBoxColumn()
· objColumn.Name = ColumnName
· objColumn.HeaderText = HeaderText
· objColumn.DataPropertyName = ColumnName
· objColumn.DropDownWidth = 160
· objColumn.Width = 100
· objColumn.MaxDropDownItems = 10
· objColumn.FlatStyle = FlatStyle.Standard
· objColumn.DataSource = pTable
· objColumn.DisplayMember = ColumnNameDisplay
· Return objColumn
· End Function
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
C#
· DataGridViewComboBoxColumn objCol = CreateComboboxColumn("STTSV""STTSV", objDataTableDanhsach,"STT")
· dataGridView1.Columns.Add(objCol);
VB
Dim objCol As DataGridViewComboBoxColumn = CreateComboboxColumn("STTSV""STTSV", objDataTableDanhsach, "STT")
dataGridView1.Columns.Add(objCol)

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML