找回密码
 立即注册

QQ登录

只需一步,快速开始

chenke79

高级会员

23

主题

98

帖子

1687

积分

高级会员

积分
1687

活字格认证

chenke79
高级会员   /  发表于:2011-7-18 17:01  /   查看:24731  /  回复:42
1金币
当选中Multirow单元格时,此时只显示该单元格的背景色为蓝色,按Ctrl+C时,只复制该单元格内容。
我现在想要实现的是,该该单元格同行的颜色都变为蓝色,但是复制时还是只复制该单元格,请各位高手大侠多多帮忙,这该怎么实现呢?

42 个回复

正序浏览
chenke79
高级会员   /  发表于:2011-7-20 10:45:00
43#
只发了一分的悬赏,先给robert,下一贴再给barrylei朋友.
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-7-19 15:19:00
42#

回复 40# chenke79 的帖子

关于悬赏啊,呵呵,我还真不知道。
支持了这么久,终于见着回头钱了。:-)
没关系,只要你的问题解决了,赏不赏的不那么重要,没所谓的。
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-7-19 15:17:00
41#

回复 32# chenke79 的帖子

问题解决了就好。不过如果不加RowHeaderCell的话,下面是另外一种思路解决你的问题。仅供参考。在想要进行Cell拷贝的时候,把Flag置成True就可以了。

  1.         bool flag = false ; // 为True代表Copy的是Cell,为False代表Copy的是Row
  2.         private void Form1_Load(object sender, EventArgs e)
  3.         {
  4.             this.gcMultiRow1.RowCount = 10;
  5.             this.gcMultiRow1.ViewMode = GrapeCity.Win.MultiRow.ViewMode.Row;// 缺省情况下设置成Row,Copy出来的就是Row
  6.             //下面这个事件在做Copy的时候会触发
  7.             this.gcMultiRow1.ClipboardOperating += new EventHandler<GrapeCity.Win.MultiRow.ClipboardOperationEventArgs>(gcMultiRow1_ClipboardOperating);
  8.         }

  9.         void gcMultiRow1_ClipboardOperating(object sender, GrapeCity.Win.MultiRow.ClipboardOperationEventArgs e)
  10.         {
  11.             //这个判断表示现在用户要进行Cell拷贝
  12.             if (flag == true &amp;&amp; e.ClipboardOperation == GrapeCity.Win.MultiRow.ClipboardOperation.Copy)
  13.             {
  14.                 e.Handled = true;//这个属性设置成True代表Copy操作要让用户来处理
  15.                 Clipboard.SetDataObject(this.gcMultiRow1.CurrentCell.Value.ToString());// 把CurrentCell的值塞到系统的剪贴板里
  16.                 flag = false;
  17.             }
  18.         }
复制代码
回复 使用道具 举报
chenke79
高级会员   /  发表于:2011-7-19 15:10:00
40#
谢谢版主~~问题都解决了~~那个悬赏要怎么赏?
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-7-19 15:05:00
39#
RowHeaderCell's ResizeMode设置成None.
回复 使用道具 举报
chenke79
高级会员   /  发表于:2011-7-19 14:49:00
38#

回复 34# robert 的帖子

加了RowHeaderCell问题解决,但是每行可以拉宽(上下),我想去掉这个属性,怎么去?
回复 使用道具 举报
chenke79
高级会员   /  发表于:2011-7-19 14:38:00
37#

回复 34# robert 的帖子

谢谢版主~~加了RowHeaderCell问题解决了~
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-7-19 14:24:00
36#
Copy在默认策略下是和选择挂钩的,就是说如果选择的是整行,拷贝到就是整行,如果选择的是个别Cell,拷贝到就是个别Cell。我注意到你的模板上是没有RowHeaderCell的,在ViewMode为Default时,最终用户不能选择整行来进行拷贝,这可能是问题所在。是否可以在你的模板上增加一个RowHeaderCell呢?这样,用户如果想拷贝一个Cell,他可以单击他想要拷贝的Cell,直接拷贝,想要拷贝行就点击这行上的RowHeaderCell再点拷贝,想拷贝多行的话,他可以从RowHeaderCell开始拖拽选择,或按下Ctrl,Shift键的时候用鼠标单击RowHeaderCell选择来选择多个Row,之后再拷贝。这样是不是问题就解决了呢?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-7-19 14:20:00
35#
改变选择模式是通过改变ViewMode属性来实现的。
ViewMode为:
Default时,点击RowHeaderCell会选中整行,单击其他Cell会选择特定Cell。
Row时,点击任何Cell都会选择整行。
Display时,不能选择,不能编辑。
ListBox时,只能选择整行,不能编辑。
回复 使用道具 举报
chenke79
高级会员   /  发表于:2011-7-19 14:16:00
34#

回复 28# robert 的帖子

选择模式
MultiRow提供了多种选择模式。您可以单击鼠标选择一个单元格或者一整行;还可以通过鼠标拖拽进行片选, 使用CTRL或者SHIFT键进行多选和片选;另外, 您还可以像ListBox的选择方式一样,进行选择和反选一行,等等。丰富的选择行为让您的应用程序操作更灵活,使用更方便。

这个选择模式功能是如何实现的,这就是我要的效果~
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部