DataGridView怎样判断光标处在新行位置?

时间:2022-01-22 22:41:41
如题,数据来自BindingSource

BindingSource中哪个或哪几个属性可知光标处在没有输入时的新行处。也就是DataGridView中行标头处有右向三角和星号并存时的那一行

18 个解决方案

#1


该回复于2010-08-04 16:49:45被版主删除

#2


Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;

#3


引用 2 楼 gxingmin 的回复:
Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;


谢谢,可是你没有明白我问的是什么问题。

#4


该回复于2010-08-04 19:13:09被版主删除

#5


引用 3 楼 jxcyz168 的回复:
引用 2 楼 gxingmin 的回复:
Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;


谢谢,可是你没有明白我问的是什么问题。


你的问题不是判断当前行吗?你把Rows[0]改成CurrentRow啊

#6


引用 4 楼 xiaowuxiaowu2008 的回复:
System.Windows.Forms.DataGridView dgv = new DataGridView();
  if(dgv.CurrentRow.IsNewRow)
  {
  //do...
  }
在使用CurrentRow的时候,最好先判断是否为空

详细看我的博客

http://big5.gov.cn/gate/big5/kuj8.com/index.as……




谢谢。 我换一种问法,免得大家都误会了我的问题:

通过访问 BindingSource (注意,是bindingSource, 不是DataGridView) 中的哪个或哪几个属性,可得知绑定到该BindingSource的DataGridView中的光标现在所处的位置在最后一行。该DataGridView的AllowUserToAddRows属性为True.








#7


BindingSource的Position属性表示你当前光标所在的行

#8


引用 7 楼 gxingmin 的回复:
BindingSource的Position属性表示你当前光标所在的行


我测试此属性,好象没办法确定光标是不是在最后一行(星号和三角符号并存的那一行)。

#9


if(BindingSource.Position==Datagridview1.Rows.Count-1)
就是最后一行

#10


引用 9 楼 gxingmin 的回复:
if(BindingSource.Position==Datagridview1.Rows.Count-1)
就是最后一行


要求判断时只用BindingSource的属性,不用Datagridview的属性。

#11


换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行

#12



dg.CurrentRow 
'当前行?

#13


Datagridview1.CurrentRow=Datagridview1.Rows.Count-1)

#14


引用 11 楼 gxingmin 的回复:
换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行


这句无法保证得到的是我所要求的最后一行。
比如DataGridView中有两行数据,最后还有一行空行,当光标在第二行时,上述比较语句两边的值都为1,当光标在第三行时,两边的值都为2。

#15


我在关注中

#16


我在学习中

#17


引用 14 楼 jxcyz168 的回复:
引用 11 楼 gxingmin 的回复:
换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行


这句无法保证得到的是我所要求的最后一行。
比如DataGridView中有两行数据,最后还有一行空行,当光标在第二行时,上述比较语句两边的值都为1,当光标在第三行时,两边的值都为2。


那是因为此时光标并不在最后一行,Datagridview失去焦点时光标自动跑到最后有数据的那一行,而不是空行那条记录

#18


学习Ing

#1


该回复于2010-08-04 16:49:45被版主删除

#2


Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;

#3


引用 2 楼 gxingmin 的回复:
Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;


谢谢,可是你没有明白我问的是什么问题。

#4


该回复于2010-08-04 19:13:09被版主删除

#5


引用 3 楼 jxcyz168 的回复:
引用 2 楼 gxingmin 的回复:
Rows集合里的IsNewRow属性

如判断第1行是否是新行
dataGridView1.Rows[0].IsNewRow;


谢谢,可是你没有明白我问的是什么问题。


你的问题不是判断当前行吗?你把Rows[0]改成CurrentRow啊

#6


引用 4 楼 xiaowuxiaowu2008 的回复:
System.Windows.Forms.DataGridView dgv = new DataGridView();
  if(dgv.CurrentRow.IsNewRow)
  {
  //do...
  }
在使用CurrentRow的时候,最好先判断是否为空

详细看我的博客

http://big5.gov.cn/gate/big5/kuj8.com/index.as……




谢谢。 我换一种问法,免得大家都误会了我的问题:

通过访问 BindingSource (注意,是bindingSource, 不是DataGridView) 中的哪个或哪几个属性,可得知绑定到该BindingSource的DataGridView中的光标现在所处的位置在最后一行。该DataGridView的AllowUserToAddRows属性为True.








#7


BindingSource的Position属性表示你当前光标所在的行

#8


引用 7 楼 gxingmin 的回复:
BindingSource的Position属性表示你当前光标所在的行


我测试此属性,好象没办法确定光标是不是在最后一行(星号和三角符号并存的那一行)。

#9


if(BindingSource.Position==Datagridview1.Rows.Count-1)
就是最后一行

#10


引用 9 楼 gxingmin 的回复:
if(BindingSource.Position==Datagridview1.Rows.Count-1)
就是最后一行


要求判断时只用BindingSource的属性,不用Datagridview的属性。

#11


换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行

#12



dg.CurrentRow 
'当前行?

#13


Datagridview1.CurrentRow=Datagridview1.Rows.Count-1)

#14


引用 11 楼 gxingmin 的回复:
换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行


这句无法保证得到的是我所要求的最后一行。
比如DataGridView中有两行数据,最后还有一行空行,当光标在第二行时,上述比较语句两边的值都为1,当光标在第三行时,两边的值都为2。

#15


我在关注中

#16


我在学习中

#17


引用 14 楼 jxcyz168 的回复:
引用 11 楼 gxingmin 的回复:
换个思路嘛
if(BindingSource.Position==BindingSource.Count-1)
就是最后一行


这句无法保证得到的是我所要求的最后一行。
比如DataGridView中有两行数据,最后还有一行空行,当光标在第二行时,上述比较语句两边的值都为1,当光标在第三行时,两边的值都为2。


那是因为此时光标并不在最后一行,Datagridview失去焦点时光标自动跑到最后有数据的那一行,而不是空行那条记录

#18


学习Ing