TextBox+MsHFlexGrid 自动换行问题
当单元格数据量大于TextBox+MsHFlexGrid设定的宽度时,应折行类似于EXCEL方式显示。请各位老师赐教了。TextBox+MsHFlexGrid嵌入表格后,不能根据字数多少自动调整行高,我该怎么办!
当单元格数据量大于TextBox+MsHFlexGrid设定的宽度时,应折行类似于EXCEL方式显示。请各位老师赐教了。TextBox+MsHFlexGrid嵌入表格后,不能根据字数多少自动调整行高,我该怎么办!
RichTextBox1.RightMargin = RichTextBox1.Width - 40 '自动换行
不用textbox改用RichTextBox,部件里选 Microsoft rich textbox control 6.0
'处理行高,10个字符是假设,自己定
if len(RichTextBox1.text) mod 10=0 then
RichTextBox1.Height=RichTextBox1.Height*(len(RichTextBox1.text)/10)
end if
[email protected] 谢了。
先判断TextBox和MSHFlexGrid设定宽度每行可容纳的字节数(VB6里面标准字体每字节占用宽度90缇,但要完整显示该字符还需要再加90缇,这样完整显示一个英文字符行宽应为180缇,二个则为270缇)。然后利用LenB函数计算TextBox和MSHFlexGrid实际字节数
LenB(strconv(String),vbfromunicode)然后 总字节数/每行可容纳字节数+1 即得到 实际行数最后 行高=实际行数*每行行高(标准字体每行行高255)
但就本人实际使用效果而言,并不好,英为MSHFlexGrid对于英文字符、数字等不会自动换行
If .Fields("书名") <> "" Then
flex1.TextMatrix(flex1.Row, 2) = .Fields("书名")
If Len(.Fields("书名")) > 22 Then flex1.RowHeight(flex1.Row) = 500
End If
办法:加载时做循环判断即可
问题:"MsHFlexGrid对已经录入过的历史数据,读取后显示的时候能根据字数自动折行",你的是哪个窗体用MsHFlexGrid显示全部记录的?
"MsHFlexGrid对已经录入过的历史数据,读取后显示的时候能根据字数自动折行"是这个意思!
我是想用frm_tsgl_hs窗体显示数据的!但现在因为解决不了折行问题,我数据都在DataGrid1窗体里显示着呢。我还是坚持想用frm_tsgl_hs能显示历史单子的数据,并且能自动折行。