各位:帮帮忙吧!(动态生成控件ComboBox的问题),急,急,急。。。。。。

doface 北京税讯技术有限公司 技术主管  2004-04-26 12:56:23
在VB中用程序动态生成控件ComboBox时,不能为他设定Style属性,请问各位,怎么设定它的Style属性为2,只能选择不能输入,谢谢。
...全文
27 点赞 收藏 5
写回复
5 条回复
Kivic 2004年04月26日
建一个combox(0)设好style隐藏,代码用load combox(i),unload combox(i)
combox(i).move ....
回复 点赞
dragon525 2004年04月26日
通过语句Combo1.Style=2是不行的,因为Style是只读属性。combox控件的style的值为0-DropDown Combo时,combox控件里有一个Edit文本框窗口,而combo控件的style的值为2-DropDown List时,则没有Edit文本框窗口。因此可以通过kill子窗口Edit来实现。。

以下代码测试通过:
-------------------------------------------------------------------
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Const GW_CHILD = 5

Private Sub Form_Load()
Dim cmb As ComboBox
Dim ChildHwnd As Long
Set cmb = Controls.Add("VB.ComboBox", "Combo1")'动态添加combox
cmb.Left = 10
cmb.Top = 10
cmb.AddItem "AAA"
cmb.AddItem "BBB"
cmb.Visible = True
ChildHwnd = GetWindow(cmb.hwnd, GW_CHILD) '取得Edit句柄
Call DestroyWindow(ChildHwnd) '销毁Edit窗口
End Sub
-------------------------------------------------------------------------
回复 点赞
haipingma 2004年04月26日
這個本來就只能在設計階段設置
回复 点赞
victorycyz 2004年04月26日

style属性只能在设计时设置。

解决的办法之一:不用controls.add方法。用添加控件数组的方法。
回复 点赞
liujiayu10 2004年04月26日
你把事件放到哪里了?INIT?还是LOAD?
回复 点赞
发动态
发帖子
控件
创建于2007-09-28

1223

社区成员

4.1w+

社区内容

VB 控件
社区公告
暂无公告