找回密码
 立即注册

QQ登录

只需一步,快速开始

lh8350

论坛元老

33

主题

80

帖子

2万

积分

论坛元老

积分
23275

活字格认证

lh8350
论坛元老   /  发表于:2012-7-16 15:26  /   查看:9952  /  回复:14
批量删除单元格内容,批量填充单元格内容,还有拖动填充单元格内容后又后悔了,怎样实现按ctrl+z键撤销上面的操作呢?

14 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-16 17:11:00
沙发
你可以先参考这个帖子中自定义Action的实现方法:http://gcdn.grapecity.com/showto ... ;postid=27711#27711
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-17 00:24:00
板凳
有没有C#的代码实现啊?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-17 09:06:00
地板
你可以通过一些代码转换工具进行转换,比如:http://www.developerfusion.com/tools/convert/vb-to-csharp/
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-17 15:10:00
5#
dof,我有个问题,就是当实现单个单元格内容复制到多个单元格时候,和选中的多个单元格按del键删除,再按ctrl+z撤销,这两块存在冲突。同样用到剪贴板,所以就乱了。怎么能像excel一样,剪贴板只保持最后一次的操作数据呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-17 18:24:00
6#
lh8350,你在解决了http://gcdn.grapecity.com/showtopic-5158.html中的问题之后,该问题还 存在吗。
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-18 09:53:00
7#
http://gcdn.grapecity.com/showtopic-3512.html中的如下代码:
private void fpSpread1_ClipboardPasting(object sender, FarPoint.Win.Spread.ClipboardPastingEventArgs e)

        {

            FarPoint.Win.Spread.Model.CellRange cr = default(FarPoint.Win.Spread.Model.CellRange);

            string textdata = null;

            string[] a = null;

            string[] b = null;

            int rowcount = 0;

            int colcount = 0;

            cr = fpSpread1.Sheets[0].GetSelection(0);

            if (cr.RowCount > 1 | cr.ColumnCount > 1)

            {

                e.Handled = true;

                if (System.Windows.Forms.Clipboard.GetDataObject().GetDataPresent(System.Windows.Forms.DataFormats.Text))

                {

                    textdata = (string)System.Windows.Forms.Clipboard.GetDataObject().GetData(System.Windows.Forms.DataFormats.Text);

                    a = textdata.Split(new char[] { (char)13 });

                    rowcount = a.Length - 1;

                    b = a[0].Split(new char[] { (char)9 });

                    colcount = b.Length;

                    for (int i = cr.Row; i <= cr.Row + cr.RowCount - 1; i += rowcount)

                    {

                        for (int x = 0; x <= rowcount - 1; x++)

                        {

                            b = a[x].Split(new char[] { (char)9 });

                            for (int j = cr.Column; j <= cr.Column + cr.ColumnCount - 1; j += colcount)

                            {

                                for (int y = 0; y <= colcount - 1; y++)

                                {

                                    string myStr;

                                    myStr = b[0];

                                    fpSpread1.Sheets[0].SetValue(i + x, j + y, myStr.Trim((char)10, (char)30));

                                }

                            }

                        }

                    }

                }

            }

        }

    }

http://gcdn.grapecity.com/showto ... ;postid=27711#27711 的代码冲突。剪贴板上的内容乱了。麻烦您试一下!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-18 17:38:00
8#
lh8350 你好,你的这个问题我会在调试之后,明天给你回复。谢谢。
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-19 00:19:00
9#
非常感谢!!!
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-19 17:47:00
10#
dof,不要忘记我的这个问题哦,感觉好棘手!剪贴板乱套了!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部