菜鸟问题,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版这么冷清啊!发分热闹一下 怎样快速画出一个凭证录入界面? 谁能把一个普通狗变成一个网络狗啊 请教:vb数据库如何与扫码机相连 贴一下一段关于ado查找记录的程序,显示“实时错误-1247352571,发生未知错误”? 请问sp5要装在vb6.0的哪个目录下 大家好? 如何使控件的外型不规则 ¥¥¥¥¥¥¥菜鸟问题多¥¥¥¥¥¥¥¥¥ vb编译后的exe文件打包到别的电脑上时运行出错 能不能编一个控件使一个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)换行就行了.