Search
Latest topics
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox
Page 1 of 1
Hướng dẫn thay đổi giá trị trên DataGridview sử dụng combobox
Trong datagridview2 mình tạo 1 comboboxcolumn1, và 1 comboboxcolumn2 và 3 cột textboxcolumn tiếp theo
Khi load form lên, comboboxcolumn1 sẽ tự động load danh sách lớp trong trường.
Khi chọn 1 lớp, thì danh sách sinh viên của lớp đó sẽ được load vào comboboxcolumn2
Khi chọn 1 sinh viên, thông tin sinh viên sẽ được load vào 3 cột textboxcolumn còn lại như là id, tên
Tương tự như vậy, khi ta thay đổi giá trị được lựa chọn thì dữ liệu những dòng sau sẽ được thay đổi theo
Hôm nay mình xin viết bài hướng dẫn về vấn đề nêu trên.
Bước 1: Định nghĩ dữ liệu để test. Tạo dữ liệu mẫu
B2. Trong sự kiện Load của Form ta cần định dạng các côt, đặc biệt là 2 hộp comboBox đầu tiên
B3. Khi giá trí của hộp comboBox thay đổi, bạn bắt các sự kiện
Khi load form lên, comboboxcolumn1 sẽ tự động load danh sách lớp trong trường.
Khi chọn 1 lớp, thì danh sách sinh viên của lớp đó sẽ được load vào comboboxcolumn2
Khi chọn 1 sinh viên, thông tin sinh viên sẽ được load vào 3 cột textboxcolumn còn lại như là id, tên
Tương tự như vậy, khi ta thay đổi giá trị được lựa chọn thì dữ liệu những dòng sau sẽ được thay đổi theo
Hôm nay mình xin viết bài hướng dẫn về vấn đề nêu trên.
Bước 1: Định nghĩ dữ liệu để test. Tạo dữ liệu mẫu
- Code:
public class Lop
{
public string LopID{get;set;}
public string TenLop{get;set;}
}
public class SV
{
public string LopID{get;set;}
public string MaSV { get; set; }
public string TenSV{get;set;}
}
Lop[] dsLop;
SV[] dsSinhVien;
private void InitData()
{
dsLop = new Lop[]
{
new Lop{LopID = "L10A", TenLop = "Lop 10A"},
new Lop{LopID = "L10B", TenLop = "Lop 10B"},
new Lop{LopID = "L10C", TenLop = "Lop 10C"}
};
dsSinhVien = new SV[]
{
new SV{LopID="L10A",MaSV="SV1",TenSV="Trinh Hoài Thanh"},
new SV{LopID="L10A",MaSV="SV2",TenSV="NguyễnMinh Huệ"},
new SV{LopID="L10A",MaSV="SV3",TenSV="Bắc Giang"},
new SV{LopID="L10B",MaSV="SV4",TenSV="Sinh vien 1"},
new SV{LopID="L10B",MaSV="SV5",TenSV="Sinh vien 2"},
new SV{LopID="L10C",MaSV="SV6",TenSV="Sinh vien lop C"}
};
}
B2. Trong sự kiện Load của Form ta cần định dạng các côt, đặc biệt là 2 hộp comboBox đầu tiên
- Code:
private void Form2_Load(object sender, EventArgs e)
{
InitData();
dataGridView1.AutoGenerateColumns = false;
DataGridViewComboBoxColumn cbLop = new DataGridViewComboBoxColumn();
cbLop.DataSource = dsLop;
cbLop.DisplayMember = "TenLop";
cbLop.ValueMember = "LopID";
cbLop.DataPropertyName = "LopID";
cbLop.HeaderText = "Mã lớp";
dataGridView1.Columns.Add(cbLop);
DataGridViewComboBoxColumn cboMaSV = new DataGridViewComboBoxColumn();
cboMaSV.HeaderText = "Mã SV";
dataGridView1.Columns.Add(cboMaSV);
DataGridViewTextBoxColumn tenSV = new DataGridViewTextBoxColumn();
tenSV.HeaderText = "Tên SV";
dataGridView1.Columns.Add(tenSV);
dataGridView1.DataSource = dsSinhVien;
}
B3. Khi giá trí của hộp comboBox thay đổi, bạn bắt các sự kiện
- Code:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int currentRow = e.RowIndex;
int currentCol = e.ColumnIndex;
if (currentCol == 0)//chon ma lop
{
DataGridViewComboBoxCell cellMaLop= (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol];
DataGridViewComboBoxCell cellMaSV = (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol 1];//vi cột MASV nằm phía tay phải cột MaLop
//Lay gia tri hien tại
string maLop = cellMaLop.Value.ToString();
cellMaSV.Items.Clear();
List<SV> lst = new List<SV>();
foreach (SV s in dsSinhVien)
if (s.LopID == maLop)
lst.Add(s);
foreach (SV s in lst)
cellMaSV.Items.Add(s.MaSV);
return;
}
else if (currentCol == 1)//chon ma sv
{
DataGridViewComboBoxCell cellMaSV = (DataGridViewComboBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol];
DataGridViewTextBoxCell cellTenSV = (DataGridViewTextBoxCell)dataGridView1.Rows[currentRow].Cells[currentCol 1];//vi cột TenSV nằm phía tay phải cột MaSV
//Lay gia tri hien tại
string maSV = cellMaSV.Value.ToString();
cellTenSV.Value="";
foreach (SV s in dsSinhVien)
if (s.MaSV == maSV)
{
cellTenSV.Value = s.TenSV;
break;
}
return;
}
}
Similar topics
» Sự kiện SelectedIndexChanged của combobox trong DataGridView
» Tìm đỉnh có bậc lớn nhất trên đồ thị vô hướng G
» Cài đặt các ứng dụng từ mã nguồn trên Linux
» 8 đoạn script hay dùng trên web
» Hướng dẫn cài đặt từ điển stardict trên ubuntu
» Tìm đỉnh có bậc lớn nhất trên đồ thị vô hướng G
» Cài đặt các ứng dụng từ mã nguồn trên Linux
» 8 đoạn script hay dùng trên web
» Hướng dẫn cài đặt từ điển stardict trên ubuntu
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
Thu Aug 23, 2012 5:38 am by Admin
» Tuyệt kỹ cua giai
Thu Aug 23, 2012 5:36 am by Admin
» NETCAT.........
Mon Aug 13, 2012 6:35 am by Admin
» Bảo mật CSDL bằng phương pháp mã hóa.
Tue Apr 17, 2012 10:04 pm by Admin
» Hàm mã hóa MD5 bằng JavaScript
Tue Apr 17, 2012 10:03 pm by Admin
» Giá của món quà
Fri Apr 13, 2012 6:01 am by Admin
» Sẽ chỉ yêu ai?
Fri Apr 13, 2012 6:01 am by Admin
» Cách đọc bảng chữ cái!
Thu Apr 12, 2012 10:37 pm by Admin
» Gắn trojan, keylog, virus vào website, forum
Tue Apr 10, 2012 1:14 am by Admin