yinzhm 发表于 2014-6-25 14:53:00

CurrentBorderLine活动行的上边框显示问题

好!
通过CurrentBorderLine可以设置当前选中行的选中边框,但是当选中第一行的时候,CurrentBorderLine设置的上边框显示不出来。(其他行的时候正常)

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

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

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

我发现我并没有成功调整了Header和Row之间的距离。
观察现在的效果,感觉是先绘制的Row,然后绘制的Header和Footer,然后Header会把第一行的上边框盖住。

dafo 发表于 2014-6-26 11:06:00

你最后的回复说的就是我们的画法策略,先绘制Row,最后绘制Header和Footer.
所以对于你的Case,GcMultiRow没有支持这样的用例。

这里有一个解决方案,自己通过SelectionChanged事件来更新Header或Footer上下沿Border来模拟Row选择Border。

      private void gcMultiRow1_SelectionChanged(object sender, EventArgs e)
      {
            if (this.gcMultiRow1.CurrentRow != null && this.gcMultiRow1.CurrentRow.Index == 0)
            {
                var bottomLine = new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Medium, System.Drawing.Color.Red);
                this.gcMultiRow1.ColumnHeaders.Border = new Border(Line.Empty, Line.Empty, Line.Empty, bottomLine);
            }
            else
            {
                this.gcMultiRow1.ColumnHeaders.Border = null;
            }
      }

yinzhm 发表于 2014-6-26 16:15:00

OK,了解了。
多谢版主!

Alice 发表于 2014-7-1 18:12:00

回复 7楼yinzhm的帖子

很高兴能帮到你,这个我结贴了,如果有新问题欢迎开新帖提问。
页: [1]
查看完整版本: CurrentBorderLine活动行的上边框显示问题