如何向文本框的两行同时写数据,就向拼音大师那样的效果一行写拼音,一行写汉字同时向两行里写,谢谢

解决方案 »

  1.   

    用SENDMSAGE可以解决。你可以参照一篇叫做“金山词霸取词”的代码,或者一篇叫“获取文本框指定行数据”的代码,把里面的GET改成SET就可以了。
    另外不用API也可以解决。。嘿嘿,多用几个文本框就行,或者呢。。干脆用LISTBOX,何必用TEXTBOX。。
      

  2.   

    同志,我有个想法啦,
    MyString = vbCrLf   '定义一行的数据
    '下面的N等于你需要的最多的文本行数
    for i= 1 to n
    text1.text=text1.text & MyString
    next
    '经过上面的初始化,就得到了一个你所需要的文本区域.
    记得曾经看过这样一篇很经典的代码:如何获取文本框第N行数据,在SENDMESSAGE里面用的参数好象是EM_GETLINE,那么很好办了,我们把代码稍加修,并且把参数改换成EM_SETLINE是不是就可以了呢.这样就可以实现一起修改某几行的数据而不影响其他行.自己写写吧,呵呵。
      

  3.   

    也有一个比较笨蛋的方法,你可以试试,和上面方法一样先把文本框设置为多行模式
    测试代码需要一个CMDBOX,一个TEXTBOX,名称默认,TEXTBOX设置为多行
    Private Sub Command1_Click()
    Dim temp As String '定义一个变量,存储你要输入的数据
    temp = time    With Text1
            .SelStart = 9 ' Len(.Text)    '设置要插入的位置,就麻烦在这里了,你得事先计算出插入位置的数字
            .SelText = temp    '设置文字,我所看的原文是.SelText = vbNewLine & temp意思是先起新行,也就是换行了.如果你需要输入后换行,可以.SelText = temp & vbcrlf
        End With自己加工一下吧End Sub
      

  4.   

    用个数组来记录,如:Dim a() As String, n As Integer
    Private Sub Command1_Click()
    If Len(Trim(a(n))) = 20 Then n = n + 2
    writetext n, Chr(Int(Rnd * 27 + 65)), Chr(Int(Rnd * 27 + 65))
    End SubPrivate Sub Form_Load()
    Dim i As Integer
    ReDim a(11)
    For i = 0 To 11
    a(i) = Space(20)
    Next
    Text1.Text = Join(a, vbCrLf)
    n = 0
    End SubSub writetext(ByVal r As Integer, x As String, y As String)
    Mid(a(r), Len(Trim(a(r))) + 1, Len(x)) = x
    Mid(a(r + 1), Len(Trim(a(r + 1))) + 1, Len(y)) = y
    Text1.Text = Join(a, vbCrLf)
    End Sub