撤销问题
如何让按钮点击事件继承表格控件的快捷键Ctrl+z的事件?以及重做功能 你好,这个没有办法直接做到,
不过C1提供了自定义输入快捷键的设置方式,比如可以设置下面的代码,然后模拟按键
var inputmap=fpSpread1.GetInputMap(InputMapMode.WhenAncestorOfFocused);
inputmap.Put(new Keystroke(Keys.NumPad1, Keys.Control), FarPoint.Win.Spread.SpreadActions.Undo);
private void button1_Click(object sender, EventArgs e)
{
fpSpread1.Focus();
SendKeys.Send("{A}");
} Richard.Ma 发表于 2020-8-3 13:46
你好,这个没有办法直接做到,
不过C1提供了自定义输入快捷键的设置方式,比如可以设置下面的代码,然后 ...
那有什么方法能存储操作,然后能进行回退和重做? Richard.Ma 发表于 2020-8-3 13:46
你好,这个没有办法直接做到,
不过C1提供了自定义输入快捷键的设置方式,比如可以设置下面的代码,然后 ...
https://gcdn.grapecity.com.cn/showtopic-68012-1-2.html
这张帖子的回退只能回退到前一步,再之前的都不能回退了 不需要存储操作,Spread本身就已经有撤销和重做的功能了,我这边测试的结果,在几个单元格中填入数据后,是可以一个一个撤销的,或者重做的 Richard.Ma 发表于 2020-8-3 17:34
不需要存储操作,Spread本身就已经有撤销和重做的功能了,我这边测试的结果,在几个单元格中填入数据后,是 ...
那哪两个方法能触发撤销和重做? 没有提供方法,因此只能是通过上述 模拟按键的方法
SpreadActions.Undo和Redo就是触发撤销和重写动作
var inputmap = fpSpread1.GetInputMap(InputMapMode.WhenAncestorOfFocused);
inputmap.Put(new Keystroke(Keys.NumPad1, Keys.Control), FarPoint.Win.Spread.SpreadActions.Undo);
inputmap.Put(new Keystroke(Keys.NumPad2, Keys.Control), FarPoint.Win.Spread.SpreadActions.Redo); Richard.Ma 发表于 2020-8-3 18:02
没有提供方法,因此只能是通过上述 模拟按键的方法
SpreadActions.Undo和Redo就是触发撤销和重写动作
但是该方法只适用C1,spread.net在xaml中并无该方法 抱歉,我没有看清楚你用的是WPF平台,
在WPF中也是通过模拟CTRL+Z和CTRL+Y就行
但是在wpf无法使用sendkeys,我帮你在网上找到的一个教程,
https://www.cnblogs.com/sixty/archive/2009/08/09/1542210.html
里面的http://files.cnblogs.com/zhouyinhui/Simulation.zip
封装好了模拟按键的类,如下调用即可模拟CTRL+Z撤销和CTRL+Y重做
private void Button_Click(object sender, RoutedEventArgs e)
{
spread1.Focus();
Keyboard.Press(Key.LeftCtrl);
Keyboard.Press(Key.Z);
Keyboard.Release(Key.Z);
Keyboard.Release(Key.LeftCtrl);
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
spread1.Focus();
Keyboard.Press(Key.LeftCtrl);
Keyboard.Press(Key.Y);
Keyboard.Release(Key.Y);
Keyboard.Release(Key.LeftCtrl);
}
页:
[1]
2