动态生成的EditBox控件,在运行时希望通过语句EditBox.text & VbCrLf使EditBox能够多行显示,但MultiLine属性是只读的,只能在设计时设置.
 有没有什么办法能让动态生成的textbox在运行时多行显示 ?

解决方案 »

  1.   

    在设计的时候,把属性更改为Multiline = True 就可以了~~
    没有办法,将就下咯要不用RichTextBox也可以。
      

  2.   

    或者你在创建的时候就加上multiline风格。
      

  3.   

    如果你的textbox是load出来的,那么在第一个textbox的属性中加入multiline风格就可以了
    如果是create出来的,应该是加上ES_MULTILINE选项。
      

  4.   

    我是这样m_objParent.Controls.Add("VB.TextBox", "NodeCap_Edit" & Format(m_NodeIndex), 
    m_objContainer) 动态add的控件, 没使用API, 有什么办法吗?
      

  5.   

    try一下这个    Dim l As Long
        l = GetWindowLong(Text1.hwnd, GWL_STYLE)
        l = l Xor &HC0
        l = l Or &H40 Or ES_MULTILINE
        SetWindowLong Text1.hwnd, GWL_STYLE, l
      

  6.   

    很不幸, 在声明了2个常量后
    Private Const GWL_STYLE = -16
    Private Const ES_MULTILINE = &H4
    运行时发现生成的textbox.MultiLine属性还是False
      

  7.   

    窗体上放置一个Text1(0),Visible=False,MultiLine=True。
    程序运行后根据需要 Load Text1(1)等,Visible=True.Move到指定位置。