此代码适用于其他任何地方..表单加载,按钮单击等。但是当我将它添加到我的tripsBindingSource_PositionChanged时,它表示对象引用在获取所选行索引时未设置为对象的实例。我假设还没有选定的行,但为什么它会在表单加载时工作?它正在运行时制作我的应用炸弹。我该怎么做才能解决这个问题?谢谢!
private void tripsBindingSource_PositionChanged(object sender, EventArgs e)
{
//get selected row index
int index = this.dgvTripGrid.CurrentRow.Index;
//get pk of selected row using index
string cellValue = dgvTripGrid["pkTrips", index].Value.ToString();
//change pk string to int
int pKey = Int32.Parse(cellValue);
...
}
答案 0 :(得分:1)
你必须首先检查行是否为空,然后只检查它是否为空
private void tripsBindingSource_PositionChanged(object sender, EventArgs e)
{
// something like
if(dgvTripGrid.CurrentRow != null)
{
//get selected row index
int index = this.dgvTripGrid.CurrentRow.Index;
//get pk of selected row using index
string cellValue = dgvTripGrid["pkTrips", index].Value.ToString();
//change pk string to int
int pKey = Int32.Parse(cellValue);
...
}
}