找回密码
 立即注册

QQ登录

只需一步,快速开始

deppp

论坛元老

43

主题

123

帖子

4662

积分

论坛元老

积分
4662

活字格认证

deppp
论坛元老   /  发表于:2012-12-20 14:05  /   查看:6225  /  回复:4
OperationMode设置为RowMode,当操作某一行的时候,该行处于被选择的状态,这时如果焦点移动到下一个控件,
该行还是处于选择状态。

想实现的功能是,通过一个按钮的点击可以取消该行的选择状态,就是使Spread处于初始状态,不选择任何一行。

4 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-20 17:59:00
沙发
回复 1楼deppp的帖子

这可以通过以下代码来实现:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.LostFocus += new EventHandler(fpSpread1_LostFocus);
  4.         fpSpread1.GotFocus += new EventHandler(fpSpread1_GotFocus);            
  5.     }

  6.     void fpSpread1_GotFocus(object sender, EventArgs e)
  7.     {
  8.         fpSpread1.ActiveSheet.OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;
  9.         fpSpread1.ResetFocusRenderer();
  10.     }

  11.     void fpSpread1_LostFocus(object sender, EventArgs e)
  12.     {
  13.         fpSpread1.ActiveSheet.OperationMode = FarPoint.Win.Spread.OperationMode.Normal;
  14.         fpSpread1.FocusRenderer = null;
  15.         fpSpread1.ActiveSheet.ActiveRowIndex = -1;
  16.     }
复制代码
回复 使用道具 举报
deppp
论坛元老   /  发表于:2012-12-21 09:35:00
板凳
已解决,多谢DOF。
另外ActiveRowIndex设置成-1或者1,效果都是一样的,是因为没法把焦点定位到header上吗?

还有一个问题,按照上面的代码设置,如果这时候想点击另外一个button是焦点移动到spread的最后一行,该怎么处理。
用activeRowIndex还是addSelection可以设置焦点,但是Spread还是当前状态。
比如spread能显示高度只能显示10行,但是想把焦点移动到第20行上,该如何处理?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-21 14:05:00
地板
可以通过 fpSpread1.SetViewportTopRow(0, 20); 来设置当前可见区域中第一行的行号。
回复 使用道具 举报
deppp
论坛元老   /  发表于:2012-12-21 14:29:00
5#
多谢dof
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部