菜鸟问题,100分相送:怎样改变MSHFlexGrid每一栏的宽度? 我把它放在了frame里面,用于显示数据库返回的信息,由于每个字段信息长短相差很大,我希望它能够相应改变每一栏的宽度,请问该怎么做?它能自动改变吗?最好请大虾给出代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSHFlexGrid1.ColWidth(1) = 100(调整第二列) '*********************************************************'* 名称:FlexRedraw'* 功能:表格的格式化'* 用法:FlexRedraw(控件名)'*********************************************************Public Function FlexRedraw(F As MSHFlexGrid) As String With F .Redraw = False '禁止重画,防止闪动 .BackColorFixed = RGB(190, 218, 178) '标题行背景色 .Row = 0 '设置标题行文字的对其方式 .Col = 0 .ColSel = .Cols - 1 .CellForeColor = vbBlue '标题行文字颜色 .CellAlignment = 4 '对其方式为中间中间 .Width = 125 '宽度 .ScrollTrack = True '移动滚动条的同时数据也滚动 For I = .FixedRows To .Rows - 1 '单双行表格条纹背景色显示 .Row = I '选择第I行 .Col = .FixedCols .ColSel = .Cols - 1 If I / 2 = Int(I / 2) Then '判断是单是双 .CellBackColor = RGB(224, 248, 224) '双行的底色 Else .CellBackColor = RGB(240, 248, 224) '单行的底色 End If Next I .Row = 1 .Col = 1 .ColSel = .Cols - 1 .Redraw = True '允许重画,显示表格 End WithEnd Function Private Sub Command1_Click() Dim I As Long With MSHFlexGrid1 .Rows = 10 .Cols = 10 For I = 0 To .Cols - 1 .ColWidth(I) = 1200 Next '.ColWidth(-1) = 1200'将所有列宽设为1200 End WithEnd Sub MSHFlexGrid1.ColWidth(1) = 100 分行顯示也可以嘛,用chr(13)換就可以了 MSHFlexGrid1.ColWidth(0) = "700"MSHFlexGrid1.ColWidth(1) = "2300"MSHFlexGrid1.ColWidth(2) = "1600"MSHFlexGrid1.ColWidth(3) = "2000"MSHFlexGrid1.ColWidth(4) = "2800"MSHFlexGrid1.ColWidth(5) = "1000"MSHFlexGrid1.ColWidth(6) = "2000"MSHFlexGrid1.ColWidth(7) = "2800" 如果单元的文本过长而不能在该单元中显示,而且 WordWrap 属性被设置为 True,那么文本就会换行到同一单元内的下一行。为了显示换行的文本,可能需要增加单元的列宽度(ColWidth 属性)或者行高度(RowHeight 属性)。用len测长度,chr(13)换行就行了. VB窗体问题: 窗体2随窗体1浮动如何做到? 水晶报表问题 各位仁兄,怎样禁止修改修改系统时间?(高分相送) sql语句问题(关于delete) 這條SQL語句有錯 这段数据插入代码哪里有问题? 怎么在VB6.0里用IE打开一个网页? 怎样动态获得通过vpn连接的主机ip地址 关于变量声明的问题,高手请进 急用,不记得键值了,在文本框中只允许输入 a-Z or 0-9 怎么控件? 能不能编一个控件使一个label具有超连接的功能,要分我给!! 能否在VB.NET中调用参数返回像char**[]这样数组API
'* 名称:FlexRedraw
'* 功能:表格的格式化
'* 用法:FlexRedraw(控件名)
'*********************************************************
Public Function FlexRedraw(F As MSHFlexGrid) As String
With F
.Redraw = False '禁止重画,防止闪动
.BackColorFixed = RGB(190, 218, 178) '标题行背景色
.Row = 0 '设置标题行文字的对其方式
.Col = 0
.ColSel = .Cols - 1
.CellForeColor = vbBlue '标题行文字颜色
.CellAlignment = 4 '对其方式为中间中间
.Width = 125 '宽度
.ScrollTrack = True '移动滚动条的同时数据也滚动
For I = .FixedRows To .Rows - 1 '单双行表格条纹背景色显示
.Row = I '选择第I行
.Col = .FixedCols
.ColSel = .Cols - 1
If I / 2 = Int(I / 2) Then '判断是单是双
.CellBackColor = RGB(224, 248, 224) '双行的底色
Else
.CellBackColor = RGB(240, 248, 224) '单行的底色
End If
Next I
.Row = 1
.Col = 1
.ColSel = .Cols - 1
.Redraw = True '允许重画,显示表格
End With
End Function
Dim I As Long
With MSHFlexGrid1
.Rows = 10
.Cols = 10
For I = 0 To .Cols - 1
.ColWidth(I) = 1200
Next
'.ColWidth(-1) = 1200'将所有列宽设为1200
End With
End Sub
MSHFlexGrid1.ColWidth(1) = "2300"
MSHFlexGrid1.ColWidth(2) = "1600"
MSHFlexGrid1.ColWidth(3) = "2000"
MSHFlexGrid1.ColWidth(4) = "2800"
MSHFlexGrid1.ColWidth(5) = "1000"
MSHFlexGrid1.ColWidth(6) = "2000"
MSHFlexGrid1.ColWidth(7) = "2800"
用len测长度,chr(13)换行就行了.