BindingSource事件不允许我获取当前dgv行的索引
本文关键字:dgv 索引 事件 不允许 允许我 获取 BindingSource | 更新日期: 2023-09-27 18:28:02
此代码适用于其他任何地方。。表单加载、按钮单击等。但当我将其添加到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);
...
}
您必须首先检查行是否为空,然后仅在不为空时加载
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);
...
}
}