PDA

View Full Version : سوال: کار با DataGridViewComboBoxColumn



navidkhalilian
دوشنبه 26 مهر 1389, 22:40 عصر
سلام.از دوستان کسی با DataGridViewComboBoxColumn توی Datagridview کار کرده؟من کمک فوری نیاز دارم

ali.rezaei7
دوشنبه 26 مهر 1389, 22:54 عصر
سلام
مشکلتون چیه؟

navidkhalilian
دوشنبه 26 مهر 1389, 23:11 عصر
سلام.میخوام توش Item درج کنم یا بگم فلان Item انتخاب بشه و کلا بتونم باهاش کار کنم.مرسی.فقط لطف کنید فوری کمک کنید.مورد اضطراریه.ممنون

ali.rezaei7
سه شنبه 27 مهر 1389, 10:30 صبح
برای ایجاد یا تغییر ستونی از نوع کمبو باکس از کلاس DataGridViewComboBoxColumn و برای کار روی فیلد هایی از همین نوع، از کلاس DataGridViewComboBoxCell استفاده می کنیم.

نحوه ایجاد ستون:



DataGridViewComboBoxColumn dgvc = new DataGridViewComboBoxColumn() ;
dgvc.HeaderText = "ComboBox";
dgvc.Name = "cbocol";
dgvc.Items.AddRange("1", "2", "3");
dataGridView1.Columns.Add(dgvc);

HeaderText: عنوان نمایشی سلول
Name: نام سلول
AddRange: اضافه کردن مقادیر چندتایی در کومبو باکس. همچنین می تونید از تابع Add هم استفاده کنید.

تغییر ستون:



DataGridViewComboBoxColumn c = (DataGridViewComboBoxColumn)dataGridView1.Columns["cbocol"];
c.Items.Clear();
c.Items.Add("Ali");
c.Items.Add("Reza");
c.Items.Add("mehdi");


قطعه کد بالا تغییرات رو در تمامی سلول های ستون و سلول هایی که بعدا ایجاد خواهد شد اعمال می کند.

Clear: محتویات کومبو باکس ها را از بین می برد.از تابع RemoveAt و Remove برای حذف آیتم دلخواه استفاده کنید.
Add: آیتم های جدید را بوسیله این تابع اضافi کردیم.

کار روی سلول ها:

1- بدست آوردن مقدار انتخاب شده در سلول:




dataGridView1["cbocol", RowIndex].Value.ToString();

کد بالا مقدار انتخاب شده در ستون cbocol را بصورت رشته ای بر می گرداند. باید توجه داشته باشید که حتما مقداری انتخاب شده باشد در غیر این صورت، برنامه دچار خطای runTime می شود. به جای RowIndex شماره سطر موردنظرتون بزارید.

2- اضافه کردن و حذف آیتم در داخل یک سلول:
در ابتدا باید شی ای از کلاس dataGridViewComboBoxCell تعریف کنیم.



DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)dataGridView1.CurrentRow .Cells["cbocol"];
cell.Items.Add("New Item");
cell.Items.RemoveAt(2);

کد بالا آیتم جدیدی بنامه New Item رو به سلول cbocol سطر جاری اضافه می کند و هم چنین آیتم سوم را حذف می کند.

انتخاب آیتم:



DataGridViewComboBoxCell c = (DataGridViewComboBoxCell)dataGridView1["cbocol", 2];
c.Value = c.Items[2];



قطعه کد بالا سومین آیتم رو از کومبو باکس انتخاب می کند.

navidkhalilian
سه شنبه 27 مهر 1389, 14:26 عصر
دوست عزیز من اینچند خط دستور را نوشتم.اما از دوخط آخر ایراد میگیره.متن خطا هم اینه


DataGridViewComboBoxCell ce1 = (DataGridViewComboBoxCell)frm.dataGridView3[9, i];
ce1.Value = "a";
DataGridViewComboBoxCell ce2 = (DataGridViewComboBoxCell)frm.dataGridView3[10, i];
ce2.Value = "a";
DataGridViewComboBoxCell ce3 = (DataGridViewComboBoxCell)frm.dataGridView3[11, i];
ce3.Value = "a";
خطا هم ضمیمه کردم.

ali.rezaei7
سه شنبه 27 مهر 1389, 15:09 عصر
به این صورت عمل کنید.



ce1.Items[index]="value"

navidkhalilian
سه شنبه 27 مهر 1389, 15:51 عصر
به این صورت عمل کنید.



ce1.Items[index]="value"

دوست عزیز item رو نمی خوام تغییر بدم.می خوام مقدار xyz رو بصورت پیشفرض نمایش بدم.اما xyz از item ها نباشه.ممنون میشم راهنمایی کنید.