找回密码
 立即注册

QQ登录

只需一步,快速开始

neu_soucese

中级会员

5

主题

12

帖子

697

积分

中级会员

积分
697

活字格认证

[已处理] 火急急求帮助

neu_soucese
中级会员   /  发表于:2013-9-29 15:07  /   查看:6057  /  回复:6
现在项目组买了几套spread产品,操作过程中有几个点不知道怎么解决求帮助
产品版本:Spread for Windows Forms 7.0J
spread升级问题
1.有一个下拉框选择切换表格页,一页是有光标可入力,另一页不可入力没有光标。光标不知道怎么设置,保证切换页面时,光标也跟着显示或者没有
2.enter按下触发keydown事件设置移动下一个单元格,默认的是enter进入编辑状态,不想让他进入编辑
3.tab不触发keydown事件
4.单元格编辑状态的时候,鼠标双击会弹出一个计算器的窗口,怎么禁止弹窗。编辑状态没有数字的时候,会自动填0,离开0会自动消失

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-9-29 16:32:00
沙发
1.有一个下拉框选择切换表格页,一页是有光标可入力,另一页不可入力没有光标。光标不知道怎么设置,保证切换页面时,光标也跟着显示或者没有
你这里的光标是指,双击单元格加入编辑状态之后的 | 光标样式吗?

2.enter按下触发keydown事件设置移动下一个单元格,默认的是enter进入编辑状态,不想让他进入编辑
可以参考以下代码设置快捷键:
  1. private void Form1_Load(object sender, System.EventArgs e)
  2. {
  3.    FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();
  4.    
  5.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  6.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);
  7.    
  8.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  9.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);
  10. }

复制代码


3.tab不触发keydown事件
类似问题在这篇文章中有描述,请参考:http://blog.gcpowertools.com.cn/post/2012/11/13/自定义键盘中上、下、左、右的事件.aspx

4.单元格编辑状态的时候,鼠标双击会弹出一个计算器的窗口,怎么禁止弹窗。编辑状态没有数字的时候,会自动填0,离开0会自动消失
请问该单元格设置的是什么类型的CellType呢,请参考以下代码:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         FarPoint.Win.Spread.CellType.NumberCellType nct = new FarPoint.Win.Spread.CellType.NumberCellType();
  4.         nct.EnableSubEditor = false;

  5.         fpSpread1.ActiveSheet.Cells[0, 0].CellType = nct;
  6.         fpSpread1.ActiveSheet.Cells[0, 0].Value = 132;
  7.     }
复制代码
回复 使用道具 举报
neu_soucese
中级会员   /  发表于:2013-9-29 20:07:00
板凳
回复 2楼dof的帖子

你好!
在此谢谢你的解答。已经完美解决2个问题。问题4的单元格的格式是numbercelltype的,按照你给的提示已经解决。
tab键问题还在试验调试。在vb.net下怎么重写ProcessDialogKey这个方法。

第一个问题可能我描述的有点问题。我重新描述一下,
有一个spread,通过下来列表显示不同的表格。更正表格中单元格是可以选中的,就是单元格获得焦点(farpiont1.SetActiveCell (0, 2))
,清算表格中不能显示任何选中的单元格只能显示检索出来的数据,在下拉列表来切换回更正表格的时候可以显示选中的单元格。怎么设置在清算这一表格的时候吧选中单元格全部清掉,不让其显示任何选中状态,不让其获取焦点。
回复 使用道具 举报
neu_soucese
中级会员   /  发表于:2013-9-30 15:47:00
地板
回复 3楼neu_soucese的帖子

清算和更正切换只是通过代码改变了一下文字,数据填充,spread表格没有改变。清算表格只显示检索出来的数据,更正表格可以显示出来数据,而且在可以显示选择单元格状态。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-9-30 16:55:00
5#
请测试以下代码是否是你需要的效果,点击【更正表格】和【清算表格】两个菜单项来切换选中的表格
【更正表格】可以设置选中单元格;【清算表格】不能设置选中单元格

10510_Update.zip (10.83 KB, 下载次数: 1531)
回复 使用道具 举报
neu_soucese
中级会员   /  发表于:2013-9-30 17:40:00
6#
谢谢了,已经解决了在change事件中清算的时候sprMain.FocusRenderer = Nothing
在更正的时候sprMain.FocusRenderer = New FarPoint.Win.Spread.EnhancedFocusIndicatorRenderer()
完美解决,
再次谢谢大拿级别人物。小菜鸟特此敬礼
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-9-30 17:51:00
7#
不客气,节日快乐
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部