افزودن Combobox در Datagridview
چهارشنبه 20 مرداد 1395در این مقاله قصد داریم که مراحل اضافه کردن ComboBox درون Datagridview را در windows Form مورد بررسی قرار دهیم.
اضافه کردن combobox درون Datagridview توسط CellClick که رویداد Datagridview است.
مرحله 1:
اضافه کردن Window form و کشیدن و رها کردن Datagridview از toolbox.
مرحله2 :
ساختن دیتا برای اتصال Datagridview و comboboxes.
فرض کنید در کارمان ما به دو comboboxes به نام های Description” و “PaidWith” نیاز داریم.
مااینجا به سه data tables نیاز داریم، یکی برای “Description” combo box,یکی برای “PaidWith” combobox،و table سوم برای ارتباط Datagridview.
/// <summary> /// Get datatable of description. /// </summary> /// <returns></returns> private DataTable GetDescriptionTable() { DataTable l_dtDescription = new DataTable(); l_dtDescription.Columns.Add("Description", typeof(string)); l_dtDescription.Columns.Add("Type", typeof(string)); l_dtDescription.Rows.Add("Lunch", "Expense"); l_dtDescription.Rows.Add("Dinner", "Expense"); l_dtDescription.Rows.Add("Breakfast", "Expense"); l_dtDescription.Rows.Add("Designing", "Service"); l_dtDescription.Rows.Add("Drawing", "Service"); l_dtDescription.Rows.Add("Paper", "Material"); l_dtDescription.Rows.Add("DrawingBoard", "Material"); return l_dtDescription; } /// <summary> /// Get datatable of PaidWIth. /// </summary> /// <returns></returns> private DataTable GetPaidWithTable() { DataTable l_dtPaidwith = new DataTable(); l_dtPaidwith.Columns.Add("PaidWith", typeof(string)); l_dtPaidwith.Columns.Add("Code", typeof(string)); l_dtPaidwith.Rows.Add("CreditCard", "CC"); l_dtPaidwith.Rows.Add("DebitCard", "DC"); return l_dtPaidwith; } /// <summary> /// Get the data for grid. /// </summary> /// <returns></returns> private DataTable GetGridTable() { DataTable l_dtGridTable = new DataTable(); l_dtGridTable.Columns.Add("PaidWith", typeof(string)); l_dtGridTable.Columns.Add("Description", typeof(string)); l_dtGridTable.Rows.Add("CreditCard", "Drawing"); return l_dtGridTable; }
مرحله3:
اتصال DataGridView با datatable.
{ dgv.DataSource = GetGridTable(); }
الان ما این کد ها را انجام دادیم.اگر ما application را run کنیم چیزی شبیه زیر میبینیم
هنگامی که کاربر روی سلول Datagridview کلیک میکند اینجا ما به combobox نیاز داریم.
مرحله 4:
اضافه کردنcombo box در datagridview با رویداد CellClick.
private void dgv_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex > -1) { // Bind grid cell with combobox and than bind combobox with datasource. DataGridViewComboBoxCell l_objGridDropbox = new DataGridViewComboBoxCell(); // Check the column cell, in which it click. if (dgv.Columns[e.ColumnIndex].Name.Contains("Description")) { // On click of datagridview cell, attched combobox with this click cell of datagridview dgv[e.ColumnIndex, e.RowIndex] = l_objGridDropbox; l_objGridDropbox.DataSource = GetDescriptionTable(); // Bind combobox with datasource. l_objGridDropbox.ValueMember = "Description"; l_objGridDropbox.DisplayMember = "Description"; } if (dgv.Columns[e.ColumnIndex].Name.Contains("PaidWith")) { dgv[e.ColumnIndex, e.RowIndex] = l_objGridDropbox; l_objGridDropbox.DataSource = GetPaidWithTable(); l_objGridDropbox.ValueMember = "PaidWith"; l_objGridDropbox.DisplayMember = "PaidWith"; } } }
اگر ما برنامه را اجرا کنیم و روی Datagridview کلیک کنیم کد بالا combo box را به برنامه ما اصافه میکند و به شکل زیر به نمایش در می اید.
در خروجی برنامه خواهیم داشت :
- C#.net
- 2k بازدید
- 4 تشکر