找回密码
 立即注册

QQ登录

只需一步,快速开始

loacher
论坛元老   /  发表于:2012-11-15 15:29  /   查看:8697  /  回复:8
假设有三个并列的cell(cell1, cell2, cell3)
当根据条件设置cell2 为不可见的时候, cell3的位置能否上提,和cell1并列?
cell2 被设置回可见的时候,又恢复最初的cell1, cell2, cell3并列的状态??

8 个回复

倒序浏览
loacher
论坛元老   /  发表于:2012-11-16 09:24:00
沙发
继续求助,难道只能手动更改位置吗
回复 使用道具 举报
wedy.wang
初级会员   /  发表于:2012-11-16 09:51:00
板凳
回复 2楼loacher的帖子

如果竖直排列的,你可以通过调用cell2.VerticalResize(-cell2.Height)来将这个cell2的高度设置成0。但是这个方法有个缺点,就是他不会将cell2的高度调整成0,而是调整成2,因为他为了能通过UIResize把这个Cell2再Resize大。因此,为了避免这个缺点,再调完这个方法后,可以再设置cell2.Visible为False,这样效果会好些。
如果是水平排列请使用Cell2.HorizontalResize方法。
回复 使用道具 举报
loacher
论坛元老   /  发表于:2012-11-16 10:26:00
地板
请问这个怎么用啊, 提示ge design时不能访问 的错误信息
回复 使用道具 举报
wedy.wang
初级会员   /  发表于:2012-11-16 10:36:00
5#
回复 4楼loacher的帖子

你需要通过GcMultiRow来获取Cell2,而不是通过Template来获取取。
比如:GcMultiRow1[0,"cell2"].VerticalResize(), 而不是Template.Row.Cells["cell2"].VerticalResize();
回复 使用道具 举报
loacher
论坛元老   /  发表于:2012-11-16 10:36:00
6#
找帮助,现在可以了实现了,只是,横向的,也有个缝隙啊,怎么办才好?
回复 使用道具 举报
loacher
论坛元老   /  发表于:2012-11-16 10:39:00
7#
还有没有其他的方法?
回复 使用道具 举报
loacher
论坛元老   /  发表于:2012-11-16 11:01:00
8#
请wedy.wang 兄,再帮忙看看
回复 使用道具 举报
wedy.wang
初级会员   /  发表于:2012-11-16 11:37:00
9#
回复 8楼loacher的帖子

这个空隙通过常规办法去不掉的。
可不可以这样子:
在调用完HorizontalResize之后,你不要隐藏Cell2,可以将Cell1的右沿Border的颜色设置成Empty,并将Cell2的左沿和右沿Border也设置成Empty,这样在界面的感觉上面Cell1和Cell3是紧挨着的。
为了方便起见,你可以在Template上面给Cell1和Cell2分别设置一个NamedCellStyle,到时候光改动这个Style的Border,那么所有的Row上面的Cell2都会改变。
可以参考下面的代码:
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             this.gcMultiRow1[0, "textBoxCell2"].HorizontalResize(-this.gcMultiRow1[0, "textBoxCell2"].Width);
  4.             CellStyle cell1InheritedStyle = this.gcMultiRow1[0, "textBoxCell1"].InheritedStyle;
  5.             CellStyle cell2InheritedStyle = this.gcMultiRow1[0, "textBoxCell2"].InheritedStyle;
  6.             CellStyle style1 = this.gcMultiRow1.NamedCellStyles["textStyle1"];
  7.             CellStyle style2 = this.gcMultiRow1.NamedCellStyles["textStyle2"];
  8.             style1.Border = new GrapeCity.Win.MultiRow.Border(
  9.                 new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Thin, (cell1InheritedStyle.Border as Border).Bottom.Color),
  10.                 new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Thin, (cell1InheritedStyle.Border as Border).Bottom.Color),
  11.                 GrapeCity.Win.MultiRow.Line.Empty,
  12.                 new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Thin, (cell1InheritedStyle.Border as Border).Bottom.Color)
  13. );
  14.             style2.Border = new GrapeCity.Win.MultiRow.Border(
  15.                 GrapeCity.Win.MultiRow.Line.Empty,
  16.                 new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Thin, (cell2InheritedStyle.Border as Border).Bottom.Color),
  17.                 GrapeCity.Win.MultiRow.Line.Empty,
  18.                 new GrapeCity.Win.MultiRow.Line(GrapeCity.Win.MultiRow.LineStyle.Thin, (cell2InheritedStyle.Border as Border).Bottom.Color));
  19.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部