WINCE 5.0使用datagrid在第一行插入新行 10C
                            int rowNum = this.dataGrid.CurrentRowIndex + 1;
            DataTable dt = (DataTable)this.dataGrid.DataSource;
            DataRow dr = dt.NewRow();
            dr[0] = rowNum;
            dr[1] = "";
            dr[2] = "";
            dt.Rows.InsertAt(dr, rowNum - 1);

            for (int i = rowNum; i < dt.Rows.Count; i++)
            {
                dt.Rows[i][0] = i + 1;
            }
            this.dataGrid.DataSource = null;
            this.dataGrid.DataSource = dt;

            DataGridCell cell = new DataGridCell(rowNum - 1, 1);
            this.dataGrid.CurrentCell = cell;

使用上述代码在当前选中的行上头添加一个新行,序号连续,并且自动选中新添加的行,正常情况下能实现效果。
但是如果在第一行添加就出现问题了,新添加的行看起来是变到了第二行应该存在的位置,并且选中的不是新添加的行,查看datatable中的值并没有出现顺序混乱,已经不知道怎么解决了,麻烦有做过的朋友给指点一下

0

2个回答

DataGridCell cell = new DataGridCell(rowNum - 1, 1);
这里rowNum是多少?是不是下标越界了。

0
y2181014
y2181014 rowNum-1就是等于当前选中的行的下标,没有越界,执行的时候没有出现报错的情况
接近 4 年之前 回复

没人知道问题所在么……………………

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!