我正在使用DataGridView和ComboBox。当我在DataGridView中使用新行开始时,我在DefaultValuesNeeded事件中使用Guid.NewGuid()创建一个新的Guid。这很好,但当我移动到下一个(新)行时,我收到以下错误消息:“对象引用未设置为对象的实例”
相关代码
DataTable dt = new DataTable();
CombBox cb = (ComboBox)sender;
string item = cb.SelectedValue.ToString();
dt = ta.GetData(item);
dgvMain.CurrentRow.Cells[2].Value = dt.Rows[0]["text"].ToString();
更新
为了解我的理解,“SelectedIndexChanged”会在我创建新行时提前发布。在这个阶段,DataTable尚未填充,这就是它引发异常的原因。如果我错了,请纠正我。我修复了我的代码,现在就运行了......
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
lp.ITDataSetTableAdapters.lp002_TableAdapter ta = new ITDataSetTableAdapters.lp002_TableAdapter();
DataTable dt = new DataTable();
string item = "";
ComboBox cb = (ComboBox)sender;
if (cb.SelectedValue != null)
{
item = cb.SelectedValue.ToString();
dt = ta.GetData(item);
if (dt.Rows.Count > 0)
{
dgvMain.CurrentRow.Cells[2].Value = dt.Rows[0]["text"].ToString();
}
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}