用button textbox listbox 等控件定制一个类似combobox的控件,带新增和删除等功能(同时对数据库操作),遇到几个问题,一是当把两个定制控件上下并列添加到窗体,运行时点上面一个,弹出的窗口中还可以看见另一个控件,也就是没完全覆盖另一个;二是当一个自定义控件点击后窗口弹出时,怎样在主窗体中点这个控件以外的地方就能把弹出的窗口收回。求大家帮忙解答,万分感谢!!!

解决方案 »

  1.   

    1、BringToFront()看看。2、在Form的mouseclick事件中listbox.Hide(),因为只有点击了非control区域才激发该事件。
      

  2.   

    啊?这个方法好笨~
    继承Combobox,写个ToolStripDropDown嵌进去。这种写Combobox的方法很多,自己研究一下~
      

  3.   

    谢谢Efcndi和cpw999cn 我会按cpw999cn 说的去试的,不过我原来的这种方法还有最后一个问题还是要问一下,我如果把自定义控件放到一个窗体的边缘,下拉框就不会出现在窗体以外,会被截断,请问如何解决?
      

  4.   

        * hxp930
        *
        * 等 级:
    发表于:2008-01-02 21:54:415楼 得分:0
    谢谢Efcndi和cpw999cn  我会按cpw999cn   说的去试的,不过我原来的这种方法还有最后一个问题还是要问一下,我如果把自定义控件放到一个窗体的边缘,下拉框就不会出现在窗体以外,会被截断,请问如何解决? 
    ======================
    这是没有办法解决的,Windows的ComboBox下拉部分经过特殊处理,有自己的句柄,可以重绘在窗体之外。
    除非你想用菜单代替ListBox,或自己编程绘制下拉框。