您的位置:程序门 -> vb -> 基础类



支持多国语言的combox(开源)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


支持多国语言的combox(开源)[已结贴,结贴人:newp]
发表于:2007-06-19 23:28:57 楼主
最近做产品一直被combox不支持多国语言的问题困扰,得到了csdn不少兄弟的帮助,很遗憾最终也没能完美解决,索性用自己有限的水平写一个ocx,继承了vb自带combox的主要方法属性,实现原理非常简单,richtexbox+combox组合
但是现在有一个问题,在引用ocx后,在ocx的事件中写入代码的时候,总是提示运行时错误330,非法参数。因为不支持持久性不能写对象
(只写了一个dropdown事件)
抛块砖,希望能引出高手的玉,完善的有分
以下是代码:

option   explicit

private   imaxlength   as   integer
private   iwidth,   iheight   as   integer
private   const   blnenabled   as   boolean   =   true
private   const   blnlocked   as   boolean   =   false

public   event   dropdown()

property   get   text()   as   string
text   =   cmbbox.text
end   property

property   let   text(byval   str   as   string)
cmbbox.text   =   str
end   property

property   get   listindex()   as   integer
listindex   =   cmbbox.listindex
end   property

property   let   listindex(byval   i   as   integer)
cmbbox.listindex   =   i
end   property

property   get   list(i   as   integer)   as   string
list   =   cmbbox.list(i)   &   " "
end   property

property   get   listcount()   as   integer
listcount   =   cmbbox.listcount
end   property

property   get   enabled()   as   boolean
enabled   =   usercontrol.enabled
end   property

property   let   enabled(byval   bln   as   boolean)
usercontrol.enabled   =   bln
cmbbox.enabled   =   bln
end   property

property   get   locked()   as   boolean
locked   =   cmbbox.locked
end   property

property   let   locked(byval   bln   as   boolean)
cmbbox.locked   =   bln
txtrich.locked   =   bln
end   property

public   function   additem(   _
                                                byref   stext   as   string,   _
                                                optional   byval   iindex   as   long)
cmbbox.additem   stext,   iindex
end   function

public   sub   clear()
cmbbox.clear
txtrich.text   =   " "
end   sub

private   sub   cmbbox_click()
txtrich.text   =   cmbbox.text
end   sub

private   sub   cmbbox_dropdown()
raiseevent   dropdown
end   sub

private   sub   txtrich_change()
cmbbox.text   =   txtrich.text
end   sub

private   sub   usercontrol_initialize()
txtrich.zorder   1
end   sub

private   sub   usercontrol_readproperties(propbag   as   propertybag)
iwidth   =   propbag.readproperty( "width ",   cmbbox.width)
usercontrol.enabled   =   propbag.readproperty( "enabled ",   blnenabled)
cmbbox.enabled   =   usercontrol.enabled
cmbbox.locked   =   propbag.readproperty( "locked ",   blnlocked)
txtrich.locked   =   propbag.readproperty( "locked ",   blnlocked)
end   sub

private   sub   usercontrol_resize()
cmbbox.left   =   0
cmbbox.top   =   0
cmbbox.width   =   usercontrol.width
usercontrol.height   =   cmbbox.height
txtrich.top   =   cmbbox.top   +   30
txtrich.left   =   cmbbox.left   +   30
txtrich.width   =   cmbbox.width   -   300
txtrich.height   =   cmbbox.height   -   txtrich.top   *   2
end   sub

private   sub   usercontrol_writeproperties(propbag   as   propertybag)
call   propbag.writeproperty( "width ",   iwidth,   cmbbox.width)
call   propbag.writeproperty( "enabled ",   usercontrol.enabled,   blnenabled)
call   propbag.writeproperty( "locked ",   cmbbox,   blnlocked)
call   propbag.writeproperty( "locked ",   txtrich,   blnlocked)
end   sub

有兴趣的留下mail我发源程序
发表于:2007-06-19 23:39:511楼 得分:10
http://community.csdn.net/expert/topicview3.asp?id=5562793
发表于:2007-06-20 01:00:322楼 得分:0
..................................
发表于:2007-06-20 02:02:483楼 得分:0
表示已经参与
发表于:2007-06-20 05:54:304楼 得分:0
我来接分
发表于:2007-06-20 09:32:535楼 得分:0
为什么dropdown事件出错?
发表于:2007-06-20 11:56:166楼 得分:90
dropdown事件不应该出错,而 "因为不支持持久性不能写对象 "是因为下面的代码有问题:
private   sub   usercontrol_writeproperties(propbag   as   propertybag)
        call   propbag.writeproperty( "locked ",   cmbbox,   blnlocked)
        call   propbag.writeproperty( "locked ",   txtrich,   blnlocked)
end   sub

你试试改成下面这样:
private   sub   usercontrol_writeproperties(propbag   as   propertybag)
        call   propbag.writeproperty( "locked ",   cmbbox.locked,   blnlocked)
        call   propbag.writeproperty( "locked ",   txtrich.locked,   blnlocked)
end   sub
发表于:2007-06-20 15:04:367楼 得分:0
to   songyaowu(不以分多而蹭之;不因分少而不答;   www.vb99.com)   :
果然是。。。。


快速检索

最新资讯
热门点击