运行时设置TextBox的换行

MatrixKnight 2008-05-12 10:14:03
动态生成的EditBox控件,在运行时希望通过语句EditBox.text & VbCrLf使EditBox能够多行显示,但MultiLine属性是只读的,只能在设计时设置.
有没有什么办法能让动态生成的textbox在运行时多行显示 ?
...全文
102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2008-05-12
  • 打赏
  • 举报
回复
如果你的textbox是load出来的,那么在第一个textbox的属性中加入multiline风格就可以了
如果是create出来的,应该是加上ES_MULTILINE选项。
MatrixKnight 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jennyvenus 的回复:]
或者你在创建的时候就加上multiline风格。
[/Quote]
请问能否具体一点?
用户 昵称 2008-05-12
  • 打赏
  • 举报
回复
或者你在创建的时候就加上multiline风格。
用户 昵称 2008-05-12
  • 打赏
  • 举报
回复
可以用api来修正。
tanjiunnya 2008-05-12
  • 打赏
  • 举报
回复
在设计的时候,把属性更改为Multiline = True 就可以了~~
没有办法,将就下咯。。。要不用RichTextBox也可以。
vbscape 2008-05-12
  • 打赏
  • 举报
回复
窗体上放置一个Text1(0),Visible=False,MultiLine=True。
程序运行后根据需要 Load Text1(1)等,Visible=True.Move到指定位置。
MatrixKnight 2008-05-12
  • 打赏
  • 举报
回复
那还有什么办法吗?
MatrixKnight 2008-05-12
  • 打赏
  • 举报
回复
很不幸, 在声明了2个常量后
Private Const GWL_STYLE = -16
Private Const ES_MULTILINE = &H4
运行时发现生成的textbox.MultiLine属性还是False
用户 昵称 2008-05-12
  • 打赏
  • 举报
回复
果然不行,没想到,抱歉。
用户 昵称 2008-05-12
  • 打赏
  • 举报
回复
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
MatrixKnight 2008-05-12
  • 打赏
  • 举报
回复
我是这样m_objParent.Controls.Add("VB.TextBox", "NodeCap_Edit" & Format(m_NodeIndex),
m_objContainer) 动态add的控件, 没使用API, 有什么办法吗?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧