找回密码
 立即注册

QQ登录

只需一步,快速开始

5628027

初级会员

21

主题

63

帖子

212

积分

初级会员

积分
212

活字格认证微信认证勋章

5628027
初级会员   /  发表于:2012-8-19 13:27  /   查看:6880  /  回复:9
如果实现这样的效果,当鼠标点击一列中的任何一个单元格,不包括列头,实现选择整列但不包括列头,
同时鼠标不能左右上下移动选择其它的单元格,如图所示。谢谢。

select.jpg

12.94 KB, 下载次数: 330

9 个回复

倒序浏览
5628027
初级会员   /  发表于:2012-8-20 11:33:00
沙发
:l~jh:
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-20 14:36:00
板凳
5628027 你好

如果想屏蔽左右键事件可以使用以下代码:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();

  4.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  5.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.None), FarPoint.Win.Spread.SpreadActions.None);

  6.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  7.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.None), FarPoint.Win.Spread.SpreadActions.None);


  8.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  9.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Left, Keys.None), FarPoint.Win.Spread.SpreadActions.None);

  10.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  11.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Left, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
  12.     }
复制代码


选择该列所有单元格可以有两种方案:

1、
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.ActiveSheet.SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Column;
  4.     }
复制代码


2、
  1.     private void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  2.     {
  3.         fpSpread1.ActiveSheet.Models.Selection.AddSelection(0, fpSpread1.ActiveSheet.ActiveColumnIndex, fpSpread1.ActiveSheet.RowCount, 1);            
  4.     }
复制代码
回复 使用道具 举报
5628027
初级会员   /  发表于:2012-8-20 14:48:00
地板
非常感谢您的回复,我是想不让鼠标拖动选择多个单元格,现在鼠标一拖动就选择了多个单元格,不知道有没有办法。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-20 15:11:00
5#
你想拖动鼠标时表现一种什么行为呢,拖动时始终都只选中一个单元格吗?
回复 使用道具 举报
5628027
初级会员   /  发表于:2012-8-20 15:16:00
6#
谢谢版主的回答,我是想鼠标拖动的时候就选择当前的那个单元格,也就是说不让鼠标选择其它的单元格,让鼠标定在原来的地方不要动。
回复 使用道具 举报
5628027
初级会员   /  发表于:2012-8-20 15:20:00
7#
我的目的就是想选中控件进行拖动,所以不想在表格里面进行选择。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-20 16:21:00
8#
回复 6楼5628027的帖子

可以在选择时,取消选择行为:
  1.     private void fpSpread1_SelectionChanging(object sender, FarPoint.Win.Spread.SelectionChangingEventArgs e)
  2.     {
  3.         e.Cancel = true;
  4.     }
复制代码
回复 使用道具 举报
5628027
初级会员   /  发表于:2012-8-20 16:32:00
9#
问题解决了,非常感谢。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-20 16:41:00
10#
这个修改是比较大的,你可以测试一下其它功能有没有因此受到影响。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部