让combo控件失效,不能击发任何事件,但不能让该控件变成灰色,本人以前处理的办法:
    1、combo.enabled=false,用这个方法可心使控件失效,但颜色变成灰色。
    2、让combo控件的容器(如frame,picture,form)的enabled=false,这样可以让combo为失效,同时满足没有变成灰色,但我的程序又要用到combo控件容器(frame,picture,form)的mousedonw事件,这种方法是要牺牲容器mousedown事件的。
    本人水平有限,这问题始终不能突破,望各路VB高手有具体的处理办法(急)?
    最好给一个VB例子。

解决方案 »

  1.   

    把子类化处理combo控件,丢弃相关的消息就可以了.相关例子文档里多的很
      

  2.   

    再嵌套一个容器。内层容器 enabled=false,且大小紧贴 combo。
      

  3.   

    将此放入frame里,再将frame.enable=false就可以了
      

  4.   

    我希望不用其容器.enabled=false的方法,用api来实现。
    1、因为我要用到容器的mousedown事件,如果用容器.enabled=false,就不能用mousedown了。
    2、我需要用到很多控件,不光指combo,line,label,textbox,image,check,option,command...
      

  5.   

    那么check,option等控件有lock属性吗,你没有看清楚问题。
      

  6.   

    >我希望不用其容器.enabled=false的方法,用api来实现。可以用事件钩子屏蔽Combo的所有消息。先用 C 和 API 写一个 .dll,再在 VB 中写一个回调函数来处理。挺麻烦的。>因为我要用到容器的mousedown事件,如果用容器.enabled=false,就不能用mousedown了。
    嵌套两层容器,内层.enabled=false,且紧贴combo;外层容器正常,用来接收mousedown事件。>2、我需要用到很多控件,不光指combo,line,label,textbox,image,check,option,command...其他控件行为简单,代码中处理就可以:
    Private Sub Command1_Click()
      If Not Frame2.Enabled Then Exit Sub '假定与 Combo 同时失效
      ......
    End If活人还能让尿憋死?