DataGridView不绑定数据源情况下的 高难度问题!重金悬赏

lsdlsdlsd1 2012-04-17 08:46:44
一个DataGridView不绑定数据源,当通过键盘想单元格中写入数据时,会自动将该行的状态修改为编辑状态,同时新增一行,但是通过程序向单元格中写入数据,源代码如下
//dgvSellInfo是-->DataGridView
//支払条件
dgvSellInfo["支払条件", this.dgvSellInfo.CurrentCell.RowIndex].Value = "test1";

//港口
dgvSellInfo["港口", this.dgvSellInfo.CurrentCell.RowIndex].Value = "test2";

当前行的状态还是新增状态也不新增一行,数据的确是传到我选择的指定行上了,但是 没有和手动输入的效果一致,而且循环判定DataGridView的效果,也没有发现有行追加.代码如下

foreach (DataRow dr in ((DataTable)dgvSellInfo.DataSource).Rows)
{
if (dr.RowState == DataRowState.Added)
{
//dr.RowState没有改变

如果要通过程序实现类似键盘输入的效果,就是将当前行状态修改为编辑,同时新增一行。
应该如何实现?请给点源代码或者建议,不胜感激
...全文
221 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
不解 2012-04-17
  • 打赏
  • 举报
回复
提个建议:
首先保证‘DataGridView’的作用范围;
要达到你描述的效果,是否可以这样:
1. 保存当前行;
2. 执行修改;
3. 添加新行;将2的数据复制到3;将1复制到2;
lsdlsdlsd1 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

不如用别的方式,js或jquery实现。
[/Quote]

是应用程序,非web
觉悟之时 2012-04-17
  • 打赏
  • 举报
回复
dgv_Post.Rows[dgv_Post.Rows.Count - 1].Cells["columnName"].ReadOnly = false;
//单击单元格,开始编辑。
private void dgvProduct_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex < 0) return;
if (e.RowIndex != this.dgv_Post.Rows.Count - 1)
{
if (e.ColumnIndex == 0)
{
DataGridViewCell cell = this.dgv_Post.Rows[e.RowIndex].Cells[e.ColumnIndex];
this.dgv_Post.CurrentCell = cell;
this.dgv_Post.BeginEdit(true);
}
}
}
honkerhero 2012-04-17
  • 打赏
  • 举报
回复
1.不绑定
2.不调用ADD

请问你哪来的新行?
happytonice 2012-04-17
  • 打赏
  • 举报
回复
不如用别的方式,js或jquery实现。
orochiheart 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

不太明白你的意思及做法,貌似拖个控件上去,设下列头,其他什么都不做就可以实现你的要求
[/Quote]
同感!
5035080 2012-04-17
  • 打赏
  • 举报
回复
不太明白你的意思及做法,貌似拖个控件上去,设下列头,其他什么都不做就可以实现你的要求
lsdlsdlsd1 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

既然你是用代码控制,那就 dgvSellInfo.Rows.Add一行不就行了,然后在写入数据
[/Quote]

dgvSellInfo.Rows.Add 不可以,请仔细思考后 再回复
@信心 2012-04-17
  • 打赏
  • 举报
回复
编辑状态Readonly=false ;
agv.CurrentRow.Cells[0].Value.ToString().Trim();
新增一行:
AllowusertoAddRows=true;
rows.add();
bdmh 2012-04-17
  • 打赏
  • 举报
回复
既然你是用代码控制,那就 dgvSellInfo.Rows.Add一行不就行了,然后在写入数据

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧