RT~~~~~注意不是文字旋转,而是像下边的效果。字符串“一二三四五六七八九十”
效果:
一 五 九
二 六 十
三 七
四 八从右向左排也可以。

解决方案 »

  1.   

    一般是在label上显示吧,加三个label,调整一下形状就可以达到那样的效果。
      

  2.   

    其实最终我是要在一个类似于Excel那样的网格控件上实现的。
    由于不是vb自带的通用控件,所以无论在什么样的控件上实现的代码都行,只要能实现类似的功能就可以。
      

  3.   

    to csdnzm(明飞) :文本框和图片框都可以。
    因为还要考虑水平和垂直对齐方式,估计文本框满足不了要求,就用picturebox好了。不知道这个循环函数要怎样一个思路去写??给定间距作用是什么??
      

  4.   

    Private Sub Command1_Click()
        Dim str1 As String
        str1 = "一二三四五六七八九十"
        Label1.Caption = h2v(str1, 4)
        Text1.Text = h2v(str1, 4) '这个TextBox要MultiLine设为True才可以
    End Sub
    Function h2v(ByVal str As String, ByVal 字数 As Long) As String
        ReDim astr(字数 - 1) As String
        Dim strChar As String
        Dim i As Long, j As Long
        j = 0
        For i = 1 To Len(str)
            strChar = Mid(str, i, 1)
            astr(j) = astr(j) & strChar
            j = j + 1
            If j > UBound(astr) Then j = 0
        Next
        h2v = Join(astr, vbCrLf)
    End Function
      

  5.   

    astr没有释放啊,最好在h2v函数的末尾加上一句
    erase astr
      

  6.   

    To cuilonggang(白金) :字符串的字符数是不一定的,一开始并不能确定列数,也就无法知道程序运行时需要多少label,这样就需要动态加载label.
    但是当列数很多并且有多个字符串时,就有可能会加载几十甚至几百个label,这样程序的性能及占用的系统资源会不会令用户无法忍受??能不能在一个label里实现字符串的竖排??
      

  7.   

    //能不能在一个label里实现字符串的竖排??运行下我的代码看看
      

  8.   

    在Form上放一个宽度和高度足够大的label,一个宽度和高度足够大的TextBox(MultiLine设为True)
    一个按钮,点按钮可以看到在Label1和Text1竖排的“一二三四五六七八九十”
      

  9.   

    Label1框弄成纵向细长,就可以
      

  10.   

    to viena(维也纳nn-实心木头人):左对齐是没有问题了,不过右对齐和居中对齐时排列就乱了我再加两个空格符调整下试一试。。基本思路倒是明白了,就是重新排列原字符串,用换行实现竖排的效果。不知道有没有API可以直接实现这种效果的??
      

  11.   

    //Label1框弄成纵向细长,就可以这样不行,只能显示成一列了
      

  12.   

    右对齐(从右向左排)只要
    astr(j) = astr(j) & strChar
    改为
    astr(j) = strChar & astr(j)
    就可以了
    不知道居中对齐是什么用意?
      

  13.   

    //不知道居中对齐是什么用意?前边说过了,因为最终是要在一个类似于Excel的网格控件上实现,所以九种对其格式(就是水平对齐三种和垂直对齐三种,组合一下九种)都要考虑到。
    举个例子,下边是垂直居中和水平居中的效果: -------------------------
    |         一五            | 
    |         二六九          |
    |         三七十          |
    |         四八            |
     -------------------------当然对于竖排文字来说,垂直对齐只对填不满单元格高度的列才起作用,例如上图中的"九十"列。
      

  14.   

    //右对齐(从右向左排)不是从右向左排。
    我指的是文本框的Alignment属性分别设成0,1,2。排列方式还是从左到右。
      

  15.   

    设置对齐方式之后有点问题。。不知道有没有API可以直接实现这种效果的???
      

  16.   

    用重新排列字符串这个思路作出来,对最后一列是奇数个字符的情况,就处理不了了~~~~~`比如下边的例子
    字符串“一二三四五六七八九十零”
    对齐方式水平居中,垂直居中。实际效果应该是类似于下图所示的样子:
    (说明:实际效果,九左边不是空格,而是九的上半部与五的下半部对齐,九的下半部与六的上半部对齐;十、零同理)
     --------------------------
    |         一 五            | 
    |               九         |
    |         二 六            |
    |               十         |
    |         三 七            |
    |               零         |
    |         四 八            |
     --------------------------而用重新排列字符串的方式实现竖排效果,是无法做到半行对齐这种效果的。。
    在文本框上估计是实现不了了
    那位高手能给个在picturebox上实现的例子??
    或者有没有实现竖排效果的API???
      

  17.   

    在picturebox上,只要算坐标就好了,
    用TextHeight方法得到文字的高度