找回密码
 立即注册

QQ登录

只需一步,快速开始

credream

中级会员

110

主题

296

帖子

828

积分

中级会员

积分
828

活字格认证

credream
中级会员   /  发表于:2015-10-14 18:21  /   查看:6846  /  回复:8
MultiRow8.0中addselection选择多个单元格的时候,只有一个单元格显示边框?
其他被选中的单元格没有边框,想让整个被选中的区域有一个边框如何设置?

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-10-15 09:38:00
沙发
回复 1楼credream的帖子

谢谢反馈。
根据你的描述,你指的是focus焦点所在矩形框,这个只能存在一个单元格上,标志着当前焦点所在的单元格(焦点是存在某个单元格上,而不是某个区域),选中的区域用选中的颜色区分。你可以通过Selection的Border样式来给整个选择区域设置边框。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
credream
中级会员   /  发表于:2015-10-15 21:46:00
板凳
回复 2楼Alice的帖子

可以给段代码吗?MultiRow8.0中并没有selection这个属性啊
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-16 14:09:00
地板
回复 3楼credream的帖子

很抱歉回复晚了。
基本思路是需要通过Style设置边框样式,将此样式设置给选择的单元格。
代码我们验证后给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Carl
版主   /  发表于:2015-10-19 09:48:00
5#
MultiRow的选择区域只能设置背景色、前景色。
            this.gcMultiRow1.DefaultCellStyle.SelectionBackColor = Color.Black;
            this.gcMultiRow1.DefaultCellStyle.SelectionForeColor = Color.White;

那个黑色的边框是设置给CurrentCell的。可以通过代码修改边框:
            this.gcMultiRow1.CurrentCellBorderLine = new GrapeCity.Win.MultiRow.Line(LineStyle.Double, Color.Blue);
也可以给CurrentRow设置边框,在按行选择的时候会用到。
            this.gcMultiRow1.CurrentRowBorderLine = new GrapeCity.Win.MultiRow.Line(LineStyle.Double, Color.Blue);
愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
credream
中级会员   /  发表于:2015-10-21 14:25:00
6#
回复 4楼Alice的帖子

验证OK 了吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-21 18:03:00
7#
回复 6楼credream的帖子

您好。
请问5楼@Carl版主提供的方法能满足您的需求么?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
credream
中级会员   /  发表于:2015-10-24 14:40:00
8#
回复 7楼Alice的帖子

上面说的应该不能实现吧,如果单纯的给每个单元格的左边框,上边框,等这样赋值的话。。岂不是挺不合适的。。。而且做到一致应该也挺困难,有简单些的办法吗?
下面是低版本的区域边框的选择效果,我们就是要把高版本的multirow作出低版本的下面的这种效果来,客户要求的。。


这样的效果,可以实现吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Carl
版主   /  发表于:2015-10-26 10:02:00
9#
MultiRow 本身是没有这个功能的,因为MultiRow支持了 Free Layout,也就是每个Cell的位置都可以任意摆放,不一定要摆成表格的样子,所以无法内置支持这个功能。
你可以考虑通过MultiRow的OwnerDraw 功能来扩展,通过自定义画法,给当前选择区域的对应Cell的上下左右边框画上不同的效果。
这个逻辑依赖于MultiRow的Template的布局来计算Cell的位置。可以尝试一下。

评分

参与人数 1金币 +999 收起 理由
Alice + 999 金币奖励

查看全部评分

愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部