我建了一个usercontrol,在上面加了picturebox,其中放了一张gif的透明图片,并为picturebox设置了右键菜单的程序,如下:
====================================
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
UserControl.PopupMenu test, 0, X, Y
End If
End Sub
===========================================
运行后,在浏览器中当我在picturebox控件上按下右键时CPU的占用率就会上升到100,而且速度非常的慢,只有菜单的样子(一个弹出框),但里面什么也没有,不知道为什么,按别的控件都没有问题,在网页上按右键弹出的也是网页自己的右键菜单,没有问题。
请教问题:
1。怎样才能让picturebox变成透明的?
2。怎样才能让usercontrol变成透明的?
1和2透明后的结果是在ie中只看到图片,看不到灰色框。
3。怎样才能让它的右键菜单按照想要的方式显示。
3的结果是,当我在ie中右击activex的图片时,显示我所设置的右键菜单。谢谢!

解决方案 »

  1.   

    将 UserControl的 BackStyle 属性设置为0 即可透明。BackStyle 属性 (UserControl 对象)
          返回或设置指示控件背景类型的数值。语法object.BackStyle [= enum]BackStyle 属性的语法包含下面部分:部分 描述 
    object 对象表达式,其值为“应用于”列表中的对象。 
    enum 枚举值,它决定控件背景的显示方式,如“设置值”中所描述。 
    设置值enum 的设置值为:设置值 描述 
    1-Opaque (缺省)不透明的背景。控件接收所有的鼠标事件。 
    2-Invisible 只有当 Windowless 属性设置为 True 才能应用。否则行为与透明 BackStyle 一样。 
    说明当 enum 设置为 2 ,则 Windowless 属性设为 True的控件外观和行为基于 MaskPicture、 MaskColor、 HitBehavior 和 ClipBehavior 属性的设置。
      

  2.   

    上面的解说错了! 奇怪的MSDN!
    看这个!语法object.BackStyle [= number]BackStyle 语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    number 数值表达式,用于确定透明性,“设置值”中有详细说明。 
    设置值number 的设置值如下:设置值 描述 
    0 透明-在控件后的背景色和任何图片都是可见的。 
    1 (缺省值)非透明-用控件的 BackColor 属性设置值填充该控件,并隐藏该控件后面的所有颜色和图片。 
    说明在 Form 对象或 Picturebox 控件上使用背景色、或在图片上放置控件时,可以利用 BackStyle 属性来创建透明控件;如果想要突出控件,可以使用非透明控件。如果 BackStyle = 0,则忽略该控件的 BackColor 属性。
      

  3.   

    Private Sub UserControl_Initialize()
    UserControl.BackStyle = 0
    End Sub这个样子并不能让控件透明。