msflexgrid中的列问题

hunsea 2003-11-13 10:40:21
怎样开始时设定msflexgrid中各列的宽度
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lucky527 2003-11-26
  • 打赏
  • 举报
回复
在我的例子中就是有字母也有中文的,都可以正常显示。
zhujiechang 2003-11-14
  • 打赏
  • 举报
回复
在运行时进行程序控制设计.ColWidth属性
trite 2003-11-14
  • 打赏
  • 举报
回复
同意楼上,但是300、150是显示小四号字体的。
字号不同的话,所占宽度我想也应该不同吧
具体多少自己试一下就可以了。
顺便问楼上一个问题:
如果有中文有字母的话,怎么实现?
Lucky527 2003-11-14
  • 打赏
  • 举报
回复
开始时是不能设的,在程序中写可以,两种你分别试试就好了:
.............
求表格每一列的最大字符数的长度,再将长度转换成列的宽度

'最大字符数的长度:
Dim L1 As Integer 'L1表示某一列的最大字符数
Dim i As Integer
For i = 1 To MSFlexGrid1.Rows
If Len(Trim(MSFlexGrid1.TextMatrix(i, 1))) > L1 Then
L1 = Len(Trim(MSFlexGrid1.TextMatrix(i, 1)))
End If
Next i
'转换成列的宽度
MSFlexGrid1.ColWidth(1) = L1 * 300 '一个汉字用300,字母用1500
...................
这是我刚改过的,保证显示 标题和信息

Dim L1 As Integer 'L1表示某一列的最大字符数
Dim i As Integer
Dim L2 As Integer

For i = 1 To MSFlexGrid1.Cols - 1
L1 = Len(Trim(MSFlexGrid1.TextMatrix(1, i)))
L2 = Len(Trim(MSFlexGrid1.TextMatrix(0, i)))
If Len(Trim(MSFlexGrid1.TextMatrix(1, i))) < Len(Trim(MSFlexGrid1.TextMatrix(0, i))) Then
MSFlexGrid1.ColWidth(i) = L2 * 300
Else
MSFlexGrid1.ColWidth(i) = L1 * 300
End If

Next i

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧