请问能把整个ListBox设置为透明么? 我想它看起来不可见,但是Visible属性是TRUE。这样它既不可见又可以接受点击之类的事件。

解决方案 »

  1.   

    参考:
    http://blog.csdn.net/yin19991999/archive/2008/03/11/2166138.aspx
      

  2.   

    大姐,东西都看不到了,人家又咋知道点哪里了呢?如果你实在要这样,那就把它visible=false,然后自己做个中转,把消息转发过去吧,哈哈
      

  3.   


    是这样,Access的ListBox不带CheckBox,我用了WinForm的ListBox可以设置带CheckBox,但是它是ActiveX控件,在ACCESS VBA的类里不能得到GotFocus事件(在这个帖子里也有描述这个问题)。Access的ListBox是标准控件,在ACCESS VBA的类里可以得到GotFocus事件。 所以我想在WinForm的ListBox上放一个透明的Access的ListBox用来帮助接受GotFocus事件。 
      

  4.   

    部件里选择Microsoft windows common control5.0
      

  5.   

    恩。我准备换个更变态的思路,把上面的边设置成透明,然后缩小到正好露出下边的CheckBox, 然后……
      

  6.   

    果然 在access中竟然跟vb6中不一样,少了很多事件,但也多了很多方法。
    即使拦截消息都很困难,没有句柄属性。
      

  7.   

    难不成用最龌龊的办法?Timer+ActiveControl?
      

  8.   

    谢谢小V忍不住想对ACCESS VBA的设计者说,酿个冬采起来
      

  9.   

    VBA错误信息:这个部件不支持该类事件(错误 459)并非每一个部件都支持事件的客户吸收。此错误有以下原因和解决方法:与一个部件共同使用WithEvents变量,而该部件不能作为指定事件集合的事件源。例如,您可能正吸收一个对象的事件,然后创建另一个对象,而它将Implements第一个对象。尽管您可能认为可以从已实现的对象吸收事件,但其实这并不是自动进行的。Implements仅仅为方法和属性实现接口。
    不能对一个不是事件源的部件吸收事件。对于 Private UserControls,不支持WithEvents,因为引发 ObjectEvent 所需的类型信息在运行时不可用。
    详细信息,可选取有问题的项目,并按下 F1 (在Windows中)或HELP(在Macintosh中)键。
    '类模块:clsLst'
    Option Compare Database
    Option Explicit
    Public WithEvents m_LstBox As MSForms.ListBox
    Public WithEvents m_obj As CustomControl' 初始化,将控件绑定到类'
    ' Make sure Forms(strWndName).Controls(strCtlName) is an msforms.listbox
    Public Sub Init(strWndName As String, strCtlName As String, index As Long)
        Dim i As Long
        
        m_strWndName = strWndName
        m_strCtlName = strCtlName
        m_index = index
        
        Set m_LstBox = Forms(strWndName).Controls(strCtlName).Object
        Set m_obj = Forms(strWndName).Controls(strCtlName) '这一句报459运行时错误'
        
    End Sub
      

  10.   

    在Accesc中ListBox透明不易实现,而在VB6中可以两个窗体叠加的方式实现。 
      

  11.   


    那在 Access 中也可以叠加窗体呀。
      

  12.   

    透明就收不到鼠标消息。 
    这是 Windows 的规则,透明不仅不可见,鼠标消息也是直接穿透到下面的窗口上。 
    否则界面表现可以用一个词形容——见鬼了。
      

  13.   

    如果把 Alpha 设置成 1 呢?
      

  14.   

    西西怎么知道 patrickkong 是女士呢?
    我没找到任何线索…………
      

  15.   

    26楼的错误提示,VB版本翻译得好一些Visual Basic 参考:错误消息
    对象或类不支持事件集试图对不能作为指定事件集的事件源的组件使用 WithEvents 变量。例如,您希望接收某个对象的事件,然后,创建了 Implements 该对象的另一个对象。虽然您可能认为您可以接收实现的对象的事件,但情况并非总是这样。Implements 只实现方法和属性的接口。专用 UserControls 不支持 WithEvents,因为引发 ObjectEvent 所需的类型信息在运行时不可用。更正此错误
    无法接收不发起事件的组件的事件。
      

  16.   

    您必须将 WithEvents 变量声明成为对象变量,以便它们可以接受类实例。但是,您不能将它们声明为 Object。必须将它们声明为可以引发事件的特定类。
    --来自http://msdn.microsoft.com/zh-cn/library/aty3352y(VS.80).aspx
      

  17.   

    你要把 29F~32F 连接起来看(也可以附加上 34F)。
      

  18.   


    也许我弄错了,我也不确定。记得TA在哪个帖子说自己married并且有孩子,找了半天没找到。
      

  19.   

    更正一下,是:你要把 27F 和 29F ~ 32F 连接起来看(也可以附加上 34F)。
      

  20.   


    看了。还是不懂。主要是不知道Alpha 是管什么的……
      

  21.   

    The Window's extend style.Alpha ---- For transparence. Value is 0 to 255    0 ---> Entireness transparent.
       255---> Opaque.Use API:
    GetWindowLong()
    SetWindowLong()
    SetLayeredWindowAttributes()
      

  22.   

    谢谢。虽然勉强会用API,可是写VB程序还要用API总是有点不情愿:)
      

  23.   

    有些时候,VB程序 用 API 是必要的。据说你在搞 C++ 了?要不你就用 C++ 来搞定吧。
      

  24.   


    曾经回答过一个 ListView 贴背景图片的问题。其实这个很类似。只要贴被它遮住的窗体位图即可“透明”。比较麻烦的是,每次更新后都要执行一次贴图,否则就变白了。