找回密码
 立即注册

QQ登录

只需一步,快速开始

yinzhm

初级会员

32

主题

129

帖子

339

积分

初级会员

积分
339

活字格认证微信认证勋章

yinzhm
初级会员   /  发表于:2014-6-25 14:53  /   查看:6176  /  回复:7
好!
通过CurrentBorderLine可以设置当前选中行的选中边框,但是当选中第一行的时候,CurrentBorderLine设置的上边框显示不出来。(其他行的时候正常)

(1)我尝试调整了Header和Row之间的距离,并且把背景色设置为透明,仍然无法显示CurrentBorderLine的上边框。

是不是绘制边框的时候有什么原则?求教!!

7 个回复

倒序浏览
yinzhm
初级会员   /  发表于:2014-6-25 15:05:00
沙发
我尝试了一下如下方法:
把模板中Row的Height调大了一个像素。
然后将Row中的Cell整体向下移动了一个像素。
这样上边框就可以显示出来了,但是上边框的上方仍有一点余白,无法找的一个完全适合的高度。
回复 使用道具 举报
yinzhm
初级会员   /  发表于:2014-6-25 15:10:00
板凳
不好意思,
2#的方案没有效果,是因为我调了其他的影响的…………
回复 使用道具 举报
yinzhm
初级会员   /  发表于:2014-6-25 15:16:00
地板
感觉绘制行的策略好像是,只绘制每一行的下边框呢??
回复 使用道具 举报
yinzhm
初级会员   /  发表于:2014-6-25 15:30:00
5#
我发现我并没有成功调整了Header和Row之间的距离。
观察现在的效果,感觉是先绘制的Row,然后绘制的Header和Footer,然后Header会把第一行的上边框盖住。
回复 使用道具 举报
dafo
版主   /  发表于:2014-6-26 11:06:00
6#
你最后的回复说的就是我们的画法策略,先绘制Row,最后绘制Header和Footer.
所以对于你的Case,GcMultiRow没有支持这样的用例。

这里有一个解决方案,自己通过SelectionChanged事件来更新Header或Footer上下沿Border来模拟Row选择Border。
  1.         private void gcMultiRow1_SelectionChanged(object sender, EventArgs e)
  2.         {
  3.             if (this.gcMultiRow1.CurrentRow != null && this.gcMultiRow1.CurrentRow.Index == 0)
  4.             {
  5.                 var bottomLine = new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Medium, System.Drawing.Color.Red);
  6.                 this.gcMultiRow1.ColumnHeaders[0].Border = new Border(Line.Empty, Line.Empty, Line.Empty, bottomLine);
  7.             }
  8.             else
  9.             {
  10.                 this.gcMultiRow1.ColumnHeaders[0].Border = null;
  11.             }
  12.         }
复制代码
回复 使用道具 举报
yinzhm
初级会员   /  发表于:2014-6-26 16:15:00
7#
OK,了解了。
多谢版主!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-7-1 18:12:00
8#
回复 7楼yinzhm的帖子

很高兴能帮到你,这个我结贴了,如果有新问题欢迎开新帖提问。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部