日期:2014-05-17  浏览次数:20774 次

C#Form编程,Datatable增加1行,Datagridview增加2行,不知道为什么
代码如下:
DataTable mydt = (DataTable)dataGridView1.DataSource;
mydt.Rows.Add(mydt.NewRow());

刚开始的时候,我使用上面代码在mydt中增加1行后,dataGridView1中自动增加1行。
不知道后来怎么回事,上面代码执行后,dataGridView1增加了两行

再次执行,dataGridView1就只增加1行,然后一直增加1行。

不去知道为什么,我把所有的代码都屏蔽了,只剩这两行,还是这样,百度里查到有一个人遇到过这种情况,说是用别的方法解决了,也没了下文

高手在吗

------解决方案--------------------
代码已试过 没问题
楼主是否 是在加载的时候 默认有行空行
(这是启用添加默认生成的)
------解决方案--------------------
datagridview的屬性欄中的AllowUserToAddRows默認為true時,datagridview面板在你添加的行數下面都會默認多1行,如果你不希望看到它,那麼就把AllowUserToAddRows設置為False,LZ不妨試試看
------解决方案--------------------
DataTable mydt = (DataTable)dataGridView1.DataSource;
mydt.Rows.Add(mydt.NewRow());
楼主代码是在事件中吧,会不会是在添加新行过程中触发了事件,结果又添加了,而这种情况,不只两行了,会无穷多
楼主可以在试试这样
DataTable mydt=new DataTable();
mydt=……
------解决方案--------------------
DataTable mydt = (DataTable)dataGridView1.DataSource;
 mydt.Rows.Add();累赘
------解决方案--------------------
DataTable mydt = (DataTable)dataGridView1.DataSource;//获取dataGridView1数据源
mydt.Rows.Add(mydt.NewRow());//已经New了一行了,然后又加了一行,是不是两行?
------解决方案--------------------
引用:
DataTable mydt = (DataTable)dataGridView1.DataSource;//获取dataGridView1数据源
mydt.Rows.Add(mydt.NewRow());//已经New了一行了,然后又加了一行,是不是两行?


不是这个问题,
mydt.Rows.Add(mydt.NewRow());
---------拆成2行代码是这样---------
DataRow row = mydt.NewRow();
mydt.Rows.Add(row);

------解决方案--------------------
应该是 AllowUserToAddRows = true; 的原因。
------解决方案--------------------
我看了半天也没看懂你为什么第一次就+了两行?信息不全,看不到东西。