PSHlujiasong 发表于 2016-3-15 16:57:28

Multirow

多谢版主回答
还有一个问题,请问如何捕捉MultiRow中单元格的Enter事件。

Alice 发表于 2016-3-15 18:00:26

谢谢反馈。
MultiRow提供了Enter/CellEnter事件。

PSHlujiasong 发表于 2016-3-15 19:14:02

感谢版主的回答,但是还有以下问题
① CellEnter事件在点击单元格的时候就被触发了;Enter事件的参数是EventArgs类型的,无法捕捉到具体哪个单元格,我的需求是当光标定位在最后一行的第一列的单元格时,按下enter键,新增一行。
② 我的multirow是有初始行数的,并且设置为行选择,为什么初始化会选中最后一行,是有什么属性设置的吗。
③ 如果我想清除当前multirow的所有内容,有没有什么方法,我用了MultiRow.Rows.Clear()方法,它把所有行删除了,我只想清除内容,不想删除行,有没有什么方法。

Alice 发表于 2016-3-16 10:05:49

PSHlujiasong 发表于 2016-3-15 19:14
感谢版主的回答,但是还有以下问题
① CellEnter事件在点击单元格的时候就被触发了;Enter事件的参数是Eve ...

1.键盘上的Enter键和Enter事件是两个不同的概念,Enter事件当进入单元格的时候会被触发(这是.net标准事件,你可以去网上看下微软的资料了解下)。
Enter键,可以通过KeyDown/KeyPress/KeyUp事件触发,然后判断是不是Enter键,如果条件合适,增加一行。

2.主要看你的rowcount是在什么时机设置的。
通过CurrentCell/CurrentCellPosition/CurrentRow等属性都可以将选择设置为你想要的位置。

3.Rows.Clear方法是用来删除行。
没有删除数据的方法。
如果你是数据绑定,就设置DataSource=null。
如果是非绑定模式,可以通过键盘的delete键删除数据,或是用SetValue方法设置某个单元格的内容为空。

PSHlujiasong 发表于 2016-3-16 15:53:34

Alice 发表于 2016-3-16 10:05
1.键盘上的Enter键和Enter事件是两个不同的概念,Enter事件当进入单元格的时候会被触发(这是.net标准事 ...

非常感谢版主的回答
关于第2点,rowCount在什么时机设置可以让它选中第一行啊,我现在选中了最后一行,由于CurrentRow是只读的,对外没有提供set方法,所以不能通过它来设置选中第一行,请问版主有什么办法吗

Alice 发表于 2016-3-16 17:20:27

PSHlujiasong 发表于 2016-3-16 15:53
非常感谢版主的回答
关于第2点,rowCount在什么时机设置可以让它选中第一行啊,我现在选中了最后一行, ...

如果是行选,设置CurrentCellPosition属性就可以改变行位置。
this.gcMultiRow1.CurrentCellPosition = new GrapeCity.Win.MultiRow.CellPosition();
页: [1]
查看完整版本: Multirow