我用VB做了一个程序,和Access相连的,Access中的一些数据要在MSFlexGrid中显示出来,如何可以自动换行?

如图所示,前两列的内容比较少可以显示出来,可是第三列内容比较多就不能显示完全了,而且每次运行程序时如上面的图显示的,只显示几个字,我还要手动拖动才能让它往后显示。有木有自... 如图所示,前两列的内容比较少可以显示出来,可是第三列内容比较多就不能显示完全了,而且每次运行程序时如上面的图显示的,只显示几个字,我还要手动拖动才能让它往后显示。有木有自动换行的方法呀?求大神指点。具体点哈。 展开
 我来答
二两牛肉不要面
2013-07-04 · 超过62用户采纳过TA的回答
知道答主
回答量:296
采纳率:0%
帮助的人:177万
展开全部
Public Sub AutoColWidth1(Flex As MSFlexGrid) '按照字段内容的大小自动调整MSFlexGrid或者MSHFlexGrid中的字段宽度
With Flex
Dim I As Long
Dim J As Long
Dim MaxWidth As Integer
Dim NowWidth As Integer
Dim CharWidth As Single
CharWidth = .Parent.TextWidth("A")
For J = 0 To .Cols - 1
MaxWidth = 0
For I = 0 To .Rows - 1
NowWidth = LenC(.TextMatrix(I, J))
If NowWidth > MaxWidth Then
MaxWidth = NowWidth
End If
Next I
.ColWidth(J) = (MaxWidth + 1) * CharWidth
Next J
End With
End Sub

Public Function LenC(Zfc As String) As Long
'求得中英文混合字符串的长度
Dim a As String
a = StrConv(Zfc, vbFromUnicode)
LenC = LenB(a)
End Function
追问
这些代码要加到哪里呢~~求指教
追答
加到 你读完数据显示到 MSFlexGrid 之后
xyc5932
2013-07-04 · TA获得超过231个赞
知道小有建树答主
回答量:775
采纳率:0%
帮助的人:492万
展开全部
我好像说过了,
MSFlexGrid没有自动换行功能,你可以把该单元格固定一定的字数在显示出来前计算一下到达固定字数的后面加Chr(13)回车符再显示。
更多追问追答
追问
恩恩 能说具体点么,小弟菜鸟额~~
追答
Dim a As String
Dim S1 As String
Dim C1 As String
Dim SW As String
Dim K As Integer
K = 20 '定义字数
S1 = Replace(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2), Chr(13), "") '先去掉回车
For j = 1 To Len(S1)
C1 = Mid(S1, j, 1)
SW = SW & C1
a = StrConv(SW, vbFromUnicode) '求得英文字符串的长度
If trim(LenB(a)) Mod K = 0 Then '大于等于k回车
SW = SW & vbCrLf
End If
Next j
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xicaisky
2020-06-18
知道答主
回答量:11
采纳率:0%
帮助的人:2.6万
展开全部
属性栏中有一个自定义属性,样式,自动换行!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式