C# comboBox from dataGridView?
我想要一个带有来自一个单元格数据网格视图的值的组合框。我试试这个,但不工作:(有什么想法吗?
1 2 3 4 5 | comboBox1.Items.Clear(); foreach (DataGridViewRow row in dataGridView1.Rows) { comboBox1.Items.Add(row.Cells[2].Value.ToString()); } |
首先检查
1 2 | if (row.Cells[2].Value != null) comboBox1.Items.Add(row.Cells[2].Value.ToString()); |
或者,使用 LINQ 遍历行并填充
1 2 3 4 5 | comboBox1.Items.AddRange( dataGridView1.Rows.Cast<DataGridViewRow>() .Where(x => x.Cells[2].Value != null) .Select(x => x.Cells[2].Value.ToString()) .ToArray()); |
更可能的是单元格中没有任何内容,或者该行甚至不存在。单步调试调试器并查看错误出现的位置。
另一种更具体的处理方法是使用
1 2 3 4 5 6 7 | // Rows.Count specifies the range explicitly - if you have 5 rows, // if i <= 5, it will loop through until it increments to 6, then stop. for(int i = 0; i <= dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows.Cells[2].Value != null) comboBox1.Items.Add(dataGridView1.Rows.Cells[2].Value.ToString()); } |
我认为 row.Cells[2].Value 有 NULL。尝试