找回密码
 立即注册

QQ登录

只需一步,快速开始

db2176

银牌会员

7

主题

48

帖子

2281

积分

银牌会员

积分
2281

活字格认证

db2176
银牌会员   /  发表于:2011-8-16 14:03  /   查看:14066  /  回复:24
现在我的画面form的大小会变化,mtr也会随着变化,但是只是外框大小跟着变,里面的头部没有跟这变,这样就相当不好看。。。
我想mtr的头部会随着我form的大小变宽而变宽怎么设置?还是说写一个事件控制mtr里面的控件的大小?

24 个回复

倒序浏览
robert
金牌服务用户   /  发表于:2011-8-16 14:20:00
沙发
“头部没有跟着变”是什么意思?头部是什么样子的,能贴张图上来看下吗?
另外,你希望Form大小发生变化的时候头部怎么变化?是等比例缩放,还是宽度变大,还是宽度高度都变大?
回复 使用道具 举报
db2176
银牌会员   /  发表于:2011-8-16 14:26:00
板凳

回复 2# robert 的帖子

头部就是mtr的标题栏,只是标题栏的宽度等比例缩放,高度不变~
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-8-16 14:46:00
地板
标题栏上边有Cell吗?有几个?怎么布局的?
行的宽度变化吗?行是怎么布局的?
回复 使用道具 举报
db2176
银牌会员   /  发表于:2011-8-16 15:23:00
5#

回复 4# robert 的帖子

标题栏都是headercell,都是行向布局,只变化行的宽度,是要每个都等距变化
回复 使用道具 举报
db2176
银牌会员   /  发表于:2011-8-16 16:11:00
6#

回复 5# db2176 的帖子

斑竹~急啊~~标题栏都设置成了Disabled,为了从代码控制其颜色~~如下:
            Me.GcKinkoDetail.ColumnHeadersDefaultHeaderCellStyle.DisabledBackColor = consts.gMtrHeadBkColor
            Me.GcKinkoDetail.ColumnHeadersDefaultHeaderCellStyle.DisabledForeColor = consts.gMtrHeadFrColor

我现在的标题栏有三个,横向排列的,只要求每个的宽度随form的变化均等变化~~~
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-8-16 17:43:00
7#
MultiRow没有简单的属性来设置所有Cell的宽度随着整个控件来平分的功能。
解决这个问题需要写一些代码自己实现。
给你一个思路:
在MultiRow的SizeChanged事件里通过GcMultiRow的ClientRectangle.Width属性和GcMultiRow的SectionWidth活动Row的宽度。计算出差值。通过Cell上的HorizontalResize方法让所有CellRezise,达到平分的效果。
  1. Private Sub gcMultiRow_SizeChanged(sender As Object, e As EventArgs)
  2.         Dim sizeDiff As Integer = Me.gcMultiRow.ClientRectangle.Width - Me.gcMultiRow.SectionWidth - SystemInformation.VerticalScrollBarWidth
  3.         Dim everyDiff As Integer = sizeDiff / Me.gcMultiRow.ColumnHeaders(0).Cells.Count
  4.         For i As Integer = 0 To Me.gcMultiRow.ColumnHeaders(0).Cells.Count - 1
  5.                 Me.gcMultiRow.ColumnHeaders(0).Cells(i).HorizontalResize(everyDiff)
  6.         Next
  7. End Sub
复制代码
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-8-16 17:45:00
8#

回复 6# db2176 的帖子

为什么要设置DisabledBackColor 不是特别理解。
回复 使用道具 举报
db2176
银牌会员   /  发表于:2011-8-17 09:17:00
9#

回复 8# robert 的帖子

这个是别人弄的~~不用管它吧~~你上面的代码有一句执行时会出错Dim everyDiff As Integer = sizeDiff / Me.gcMultiRow.ColumnHeaders(0).Cells.Count
错误时“インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。 パラメータ名: index”
请问怎么解决?
回复 使用道具 举报
db2176
银牌会员   /  发表于:2011-8-17 09:27:00
10#

回复 7# robert 的帖子

还有就是Dim everyDiff As Integer = sizeDiff / Me.gcMultiRow.ColumnHeaders(0).Cells.Count
这句本身就有错,后面部分提示double  和 integer 型的问题~~
我在外面加了一个CINT(sizeDiff / Me.gcMultiRow.ColumnHeaders(0).Cells.Count
)才不出错,但是执行后会出现上面说的那个错~~~
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部