找回密码
 立即注册

QQ登录

只需一步,快速开始

merciful

论坛元老

18

主题

46

帖子

4982

积分

论坛元老

积分
4982

活字格认证

merciful
论坛元老   /  发表于:2011-4-27 11:36  /   查看:7770  /  回复:7
如题。
例如,我从EXCEL中拷贝了三行一列的数据,在grid中选择任意cell后,粘贴从当前cell向下三个cell替换成我复制的内容。
可否?

我知道复制源都是以特定结构复制到剪切板的,不知道multirow6中是否能自动判断,进行粘贴。原因就是,复制对象不一定是Excel,有可能就是multirow本身,也可能是其他的软件产品中的数据。
只想实现整列的粘贴。
盼复,谢谢!

7 个回复

倒序浏览
neil
论坛元老   /  发表于:2011-4-27 12:14:00
沙发

回复 1# merciful 的帖子

>>>例如,我从EXCEL中拷贝了三行一列的数据,在grid中选择任意cell后,粘贴从当前cell向下三个cell替换成我复制的内容。
可否?

这个功能是可以的,默认就是支持的,我不知道你有什么问题吗,还是我没有理解清楚?

从excel中复制整列,然后粘贴到multirow也是可以的,从multirow复制粘贴到 multirow也是可以的。

你再试试,如果是我理解的不对,请再描述详细一点。
回复 使用道具 举报
merciful
论坛元老   /  发表于:2011-4-27 13:56:00
板凳
我现在是在viewmode=row的模式下,VirtualMode = true
我在Excel中复制三行,然后,选择grid上的一个cell,点击按钮,实现功能。
ctrl+V自身的快捷键让我解除了,因为我需要自己编写粘贴功能,现在对于剪贴板的粘贴我另外还有
一个按钮来实现,因此代码应该如何写?
我现在写的是
if (EditingActions.Paste.CanExecute(gcGrid))
            {
                EditingActions.Paste.Execute(gcGrid);
            }
只能粘贴选择的cell
回复 使用道具 举报
neil
论坛元老   /  发表于:2011-4-27 14:35:00
地板

回复 3# merciful 的帖子

我在viewmode=row的模式下,VirtualMode = true 的情况下,用你的代码是可以完成粘贴的。
我们内部粘贴就是使用的 EditingActions.Paste。

能否请你上传一个示例工程,我们好重现你的问题。谢谢。
回复 使用道具 举报
merciful
论坛元老   /  发表于:2011-4-27 16:36:00
5#
我知道了,我设置MultiSelect=false,所以只能粘贴一行。
我现在可以在粘贴前设置true,粘贴后设置为false,就可以完成功能。

现在有一个扩展问题。
由于外来的数据无法保证符合我现在的程序要求,比如我只有1行数据,结果用户拷贝了3行数据过来,那么就会新增两行数据,很有可能会引起异常,这不是我所希望的。
我的想法是如果在粘贴工程中grid本身抛出错误了,那么捕获它,然后出现我自定义的错误信息,当前数据不发生变化。能实现吗?捕获有DatrError事件,但是如何回滚,望告知?
回复 使用道具 举报
Arthas
葡萄城公司职员   /  发表于:2011-4-27 23:18:00
6#

回复 5# merciful 的帖子

不知道你的扩展问题是不是要禁止用户新增行?

这个属性好像是叫“AllowUserToAddRow”
DataGridView和MultiRow都是用这个属性控制的。
扯淡第一高手
回复 使用道具 举报
neil
论坛元老   /  发表于:2011-4-28 10:46:00
7#
你好,目前MultRow没有提供在发生DataError后回滚的功能。

只能自己写代码实现,基本思路有两个:
1.如果你是在数据绑定模式下,  可能能利用数据源本身的回滚功能, 或者在粘贴之前把数据源备份(clone下来)下来,粘贴完之后再重新设置数据源达到回滚的效果。

2.针对你的实际情况,在虚拟模式下,粘贴过程中会发生CellValuePushed事件,在此事件中把cell的旧值记下来,粘贴完之后,如果需要回滚,直接设回旧值即可。
针对你的情况,我写了一个工程,请参考里面的代码:

针对这个工程需要说明的是,工程中定义了MyPasteAction, 在这个Action中,发出了粘贴的时机。  所以请在GcMultiRow的ShortCutManager 中把自带的Ctrl+V 的paste删除。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
merciful
论坛元老   /  发表于:2011-4-29 13:11:00
8#
谢谢,提供参考思路,我已经知道怎么做了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部