当我点击我的DataGridView中的一个单元格时,这些值会在我的文本框中传递,但是当我遇到组合框时我遇到了问题,它只是保持为空。我已经尝试过SelectedItem和SelectedIndex,但它仍然是null。我已经设法使用SelectedText将值放在我的组合框中,但是一旦我更新了我的数据库,我在我的组合框中得到了NullReferenceException,这是我的代码:
private void dgvStudentRecord_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = this.dgvStudentRecord.Rows[e.RowIndex];
txtStudNum.Text = row.Cells["studentId"].Value.ToString();
txtStudName.Text = row.Cells["studentName"].Value.ToString();
cboSection.SelectedText = row.Cells["section"].Value.ToString();
numPrelim.Value = Convert.ToDecimal(row.Cells["prelim"].Value);
numMidterm.Value = Convert.ToDecimal(row.Cells["midterm"].Value);
numFinals.Value = Convert.ToDecimal(row.Cells["finals"].Value);
}
}
答案 0 :(得分:1)
你接近它时会有一些令人头痛的事情,因为ComboBox根本不能很好地处理意外的值,而SelectText属性它没有做你认为它做的事情(它没有选择一个项目来自设置该属性时的内部列表)(参见:https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext(v=vs.110).aspx)
你会更好地写下这样的东西:
int index = cboSection.FindString(row.Cells["section"].Value.ToString());
if(index > -1)
{
cboSection.SelectedIndex = index;
}
else
{
object newSection = row.Cells["section"].Value.ToString();
cboSection.Items.Add(newSection);
cboSection.SelectedItem = newSection;
}
编辑以显示条件选择或添加。
最后编辑... Doh。
答案 1 :(得分:0)
试试这个,ComboBox.Text
属性
combobox1.Text=row.Cells[cellIndex].Value.ToString();