!!外观象ComboBox可以自己指定下拉窗体的控件介绍!!

missbo 2002-07-18 09:27:05
有人说,VB做不了象PB那样的DropDown的DateWindow。实际上是可以的。
鉴于大家都想改造ComboBox一下拉,而且,现在也没有好的方法。(网上虽然有一用API的例子,但是只是一个用控件替换的方法。并没使用标准Popup Window做下拉)
我们虽然有Form20.dll可以显示多列。不过,这样的ComboBox还是不能有OK Cancel按钮在其中。前几天Playyuer说要用TreeView做下拉。那时实际我已在开发这个控件了!(可以说,不是ComboBox,但外观与ComboBox是一样的!)
(当然,以前有人说过,用TextBox与按钮组合即可,现在做的可不是那样的东西!)
现在好了,下拉的DropDown控件有了。简单得很,你只要给控件指定下拉的窗体就行了!外观可是与ComboBox完全一样!

现在控件做好了,以下是使用的例子代码:

在使用本控件的窗体中的代码:

Option Explicit

Private Sub Form_Load()
XpDropDown.Value = 33333
XpDropDown.Caption = "44444"
Set XpDropDown.FrmDrop = FrmTest
End Sub

指定的下拉窗体,FrmTest的代码:

'因为下拉窗体显示时不再是VB的Form,所以其关闭要由控件来控制.
'因而有以下代码
Option Explicit

Private Sub Command1_Click()
'给控件设置新的Caption与Value,并使其关闭
FrmDemo.XpDropDown.CloseMe 111111, "222222"
End Sub

'下面这些都是用来控制窗体是否要关闭的代码.实际就是两个方法.
'CtrlGotFocusAsk和CtrlLostFocusAsk
'但是对于所有具有这些事件的控件都要加上这两个代码,
'这样才能通知XpDropDown控件,是否关闭下拉窗口.
'此窗口中绝不允许有任何Form.Hide或Unload Me
'不过这也无妨,关键是加这个代码烦了一些.你帮助我发贴,
'看看其他高手是否有好办法.不过要注意,不允许用Hook,因为这不安全!

Private Sub Command1_GotFocus()
FrmDemo.XpDropDown.CtrlGotFocusAsk
End Sub

Private Sub Command1_LostFocus()
FrmDemo.XpDropDown.CtrlLostFocusAsk
End Sub

Private Sub Command2_GotFocus()
FrmDemo.XpDropDown.CtrlGotFocusAsk
End Sub

Private Sub Command2_LostFocus()
FrmDemo.XpDropDown.CtrlLostFocusAsk
End Sub

同时,也可以通知大家,如果需要可以到www.easthot.net的论坛中预订!

谢谢!
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
missbo 2002-08-12
  • 打赏
  • 举报
回复
源码开放,具体请去www.easthot.net查看!
shawls 2002-07-30
  • 打赏
  • 举报
回复
good!!!
oxfordxyc 2002-07-28
  • 打赏
  • 举报
回复
谢谢 去看先
missbo 2002-07-21
  • 打赏
  • 举报
回复
*********************************************
*********************************************

界面图:
http://www.easthot.net/download/Dropdowndemo.gif

*********************************************
*********************************************
gpo2002 2002-07-18
  • 打赏
  • 举报
回复
thx

1,453

社区成员

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

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