Vb6 文本方向flexgrid
是否仍然可以像excel那样将msflexgrid中的文本垂直对齐 谢谢Vb6 文本方向flexgrid,vb6,text,msflexgrid,Vb6,Text,Msflexgrid,是否仍然可以像excel那样将msflexgrid中的文本垂直对齐 谢谢 如果您谈论的是文本的垂直旋转,则不会 您可以将文本转换为旋转图像,然后加载图像 进一步说 可以将旋转文本打印到picturebox控件,然后将picturebox指定给单元格 此链接显示了该方法的类似用法,但原因略有不同 没有内置功能,但这是我几年前使用的一个黑客。将字符串传递给函数,函数返回一个字符串,每个字符后面都有回车符和换行符 Private Function VerticalString(ByVal strInp
如果您谈论的是文本的垂直旋转,则不会 您可以将文本转换为旋转图像,然后加载图像 进一步说 可以将旋转文本打印到picturebox控件,然后将picturebox指定给单元格 此链接显示了该方法的类似用法,但原因略有不同
没有内置功能,但这是我几年前使用的一个黑客。将字符串传递给函数,函数返回一个字符串,每个字符后面都有回车符和换行符
Private Function VerticalString(ByVal strInput As String) As String
Dim strReturn As String
Dim i As Integer
For i = 1 To Len(strInput)
strReturn = strReturn & Mid$(strInput, i, 1) & vbCrLf
Next i
If Len(strReturn) > 1 Then
strReturn = Mid$(strReturn, 1, Len(strReturn) - 1)
End If
VerticalString = strReturn
End Function
Private Sub FillGrid()
flexgrid1.TextMatrix(1, 0) = VerticalString("Kc Chiefs")
End Sub
将字体旋转90度有很多好处。VB6使用stdole2类型库的OLE StdFont对象部分 您必须将StdFont转换为GDI字体才能对其进行操作 下面是一篇非常好的文章(),其中包含了执行该操作的示例代码 该示例是在表单上绘制的,但我认为您可以获得MSFlexGrid的句柄并将其绘制到表单中
然后可以控制何时以及如何绘制文本。如果要在运行时编辑垂直文本,可以在编辑文本时在单元格上方显示水平文本框,然后在编辑完成后绘制新文本。是的,我指的是垂直旋转的文本。我考虑过这个解决方案,但是像excel那样快速编辑怎么办?检查我附加的图片非常感谢你的回答,我如何水平旋转文本框?我假设你的意思是垂直旋转文本框?我认为如果你想要的话,你必须同时绘制文本框和GDI中的文本。这里的问题是显示文本静态(在每次绘制事件中将其绘制到窗体上)和动态(使文本与其环境交互)之间的区别。我认为,即使是excel,在垂直显示文本时,在编辑时也会在水平控件中显示文本。我也不确定在垂直位置编辑文本是最实用或用户友好的方式。