Vb6 文本方向flexgrid

Vb6 文本方向flexgrid,vb6,text,msflexgrid,Vb6,Text,Msflexgrid,是否仍然可以像excel那样将msflexgrid中的文本垂直对齐 谢谢 如果您谈论的是文本的垂直旋转,则不会 您可以将文本转换为旋转图像,然后加载图像 进一步说 可以将旋转文本打印到picturebox控件,然后将picturebox指定给单元格 此链接显示了该方法的类似用法,但原因略有不同 没有内置功能,但这是我几年前使用的一个黑客。将字符串传递给函数,函数返回一个字符串,每个字符后面都有回车符和换行符 Private Function VerticalString(ByVal strInp

是否仍然可以像excel那样将msflexgrid中的文本垂直对齐

谢谢


如果您谈论的是文本的垂直旋转,则不会

您可以将文本转换为旋转图像,然后加载图像

进一步说

可以将旋转文本打印到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,在垂直显示文本时,在编辑时也会在水平控件中显示文本。我也不确定在垂直位置编辑文本是最实用或用户友好的方式。