if(this._DataGrid.CurrentRowIndex>=0) this._DataGrid.UnSelect(this._DataGrid.CurrentRowIndex);
this._DataGrid.SetDataBinding(DataSource,"");
this._DataGrid.TableStyles.Clear();
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=MappingName;
foreach(DataGridColumnStyle cs in dgcs)
{
  cs.NullText=AppString.cmndatagridNullText;
}
dgts.GridColumnStyles.AddRange(dgcs);
this._DataGrid.TableStyles.Add(dgts);
this._DataGrid.Refresh();
不管我怎么重新绑定,怎么设置被选中的行,这个错误就一定会出现,怎么绕过这个Bug呢?

解决方案 »

  1.   

    我好象也是遇到过这样的问题
    我好象在for循环的里面就进行了Fill DataGrid
    所以在删除的时候出现了这样的问题
      

  2.   

    //delete operator
    try
    {
      //邦定;
    }
    catch
    {
       this.dg1.CurrentPageIndex--;
       //邦定;
    }
      

  3.   

    to insiderc() 就算不分页也有错误的。
      

  4.   

    to DataGird 删除最后一行后显示索引超出界限你如何删除的
      

  5.   

    DataGrid.CurrentRowIndex
    ---------------------------
    没有数据就没有当前行,所有首先判断有没数据,再执行你的代码!
      

  6.   

    你差数据邦定指向索引类,相当于指针用法
    this.sqlDataAdapter1.Fill(this.dataSet11.职员奖励表);
    cmManage = (CurrencyManager) BindingContext[this.dataSet11,"职员奖励表"];
    cmManage.Position = 0;
    }
    //------------------处理数据导航条和新增修改等事务---------------------
    private void toolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
    {
    if (e.Button.ToolTipText == "首记录")
    {
    cmManage.Position = 0;
    return;
    }
    if (e.Button.ToolTipText == "上一记录")
    {
    if (cmManage.Position > 0)
    cmManage.Position--;
    return;
    }
    if (e.Button.ToolTipText == "下一记录")
    {
    if (cmManage.Position < cmManage.Count-1)
    cmManage.Position++;
    return;
    }
    if (e.Button.ToolTipText == "尾记录")
    {
    cmManage.Position = cmManage.Count-1;
    return;
    }
    if (e.Button.ToolTipText == "新增记录")
    {
    cmManage.AddNew();
    return;
    }
    if (e.Button.ToolTipText == "删除记录")
    {
    if (MessageBox.Show("确实要删除这条记录吗?","询问",MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
    if (cmManage.Count > 0)
    cmManage.RemoveAt(cmManage.Position);
    else
    {
    MessageBox.Show("没有可以删除的数据","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
    return;
    }
    }
    //参考