Iran58
شنبه 10 مهر 1395, 11:19 صبح
سلام
یک دیتاگرید داریم که بصورت زیر پر میشود
private void Form8_Load(object sender, EventArgs e)
{
dataGridView2.ColumnCount = 3;
dataGridView2.Columns[0].Name = "Product ID";
dataGridView2.Columns[1].Name = "Product Name";
dataGridView2.Columns[2].Name = "Product Price";
string[] row = new string[] { "1", "Product 1", "1000" };
dataGridView2.Rows.Add(row);
row = new string[] { "2", "Product 2", "2000" };
dataGridView2.Rows.Add(row);
row = new string[] { "3", "Product 3", "3000" };
dataGridView2.Rows.Add(row);
row = new string[] { "4", "Product 4", "4000" };
dataGridView2.Rows.Add(row);
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
cmb.HeaderText = "Select Data";
cmb.Name = "cmb";
cmb.MaxDropDownItems = 4;
cmb.Items.Add("True");
cmb.Items.Add("False");
dataGridView2.Columns.Add(cmb);
}
حال می خواهم هرگاه از یک ردیف خارج شدم
var a = dataGridView2.CurrentRow.Cells[4].Value.ToString();
if (dataGridView2.CurrentRow != null) MessageBox.Show(a);
مقدار داخل کموباکس را نمایش بدهد
اما ارور زیر را می دهد
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Index was out of range. Must be non-negative and less than the size of the collection.
کد را باید چگونه تغییر بدهم
باتشکر
یک دیتاگرید داریم که بصورت زیر پر میشود
private void Form8_Load(object sender, EventArgs e)
{
dataGridView2.ColumnCount = 3;
dataGridView2.Columns[0].Name = "Product ID";
dataGridView2.Columns[1].Name = "Product Name";
dataGridView2.Columns[2].Name = "Product Price";
string[] row = new string[] { "1", "Product 1", "1000" };
dataGridView2.Rows.Add(row);
row = new string[] { "2", "Product 2", "2000" };
dataGridView2.Rows.Add(row);
row = new string[] { "3", "Product 3", "3000" };
dataGridView2.Rows.Add(row);
row = new string[] { "4", "Product 4", "4000" };
dataGridView2.Rows.Add(row);
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
cmb.HeaderText = "Select Data";
cmb.Name = "cmb";
cmb.MaxDropDownItems = 4;
cmb.Items.Add("True");
cmb.Items.Add("False");
dataGridView2.Columns.Add(cmb);
}
حال می خواهم هرگاه از یک ردیف خارج شدم
var a = dataGridView2.CurrentRow.Cells[4].Value.ToString();
if (dataGridView2.CurrentRow != null) MessageBox.Show(a);
مقدار داخل کموباکس را نمایش بدهد
اما ارور زیر را می دهد
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Index was out of range. Must be non-negative and less than the size of the collection.
کد را باید چگونه تغییر بدهم
باتشکر