VB:如何使图片框上的按钮透明?

时间:2017-11-25 07:44:20

标签: vb.net visual-studio picturebox transparent

在我的程序中,我有一个特定宽度x和高度y的图片框。然后用户可以输入元素大小(例如10),然后程序将创建具有图片框上元素大小的宽度和高度的按钮。问题是这些按钮需要是透明的,所以只能看到它们的边框。这意味着通过按钮可以看到图片框的内容。

所以这是我点击开始按钮时创建这些按钮的代码:

function switchView(mode){
    let spotifyContainer = document.getElementById("spotifycontainer");

    if (mode == 'party'){
    spotifyContainer.src='https://open.spotify.com/embed/user/21sbumll6xursi72kr7vkspay/playlist/4VEIFU2doL7TdnolXXFd70';
    }
    if (mode == 'future'){
    spotifyContainer.src = 'https://open.spotify.com/embed/user/21sbumll6xursi72kr7vkspay/playlist/4VEIFU2doL7TdnolXXFd70';
    }
}

我用

Imports System.Math
Public Class Form1
Dim x As Double
Dim y As Double
Dim elsize As Integer
Dim numberofbuttons As Integer


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    x = 400
    y = 200
    elsize = 20

    numberofbuttons = Round(x / elsize) * Round(y / elsize)
    Dim i As Integer
    Dim j As Integer
    For j = 1 To Round(y / elsize)
        For i = 1 To Round(x / elsize)
            Dim Btn As New Button
            Btn.Width = elsize
            Btn.Height = elsize
            Btn.Location = New Point(elsize * (i - 1), elsize * (j - 1))
            Btn.BackColor = Color.Transparent
            PictureBox1.Controls.Add(Btn)

        Next
    Next

End Sub
End Class

将这些按钮放在图片框前面,我想使用

Btn.BringToFront()

使它们透明,但这不会起作用。有任何想法如何做到这一点?另外我想把这些按钮放在图片框的坐标系中而不是form1的坐标系中。我认为这可以通过

来实现
Btn.BackColor = Drawing.Color.Transparent

但按钮始终使用表格的坐标系。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

此:

Me.Controls.Add(Btn)

Parent的{​​{1}}设置为表单。您没有Button到一个父级并明确指定其他父级。做一个或另一个。简而言之,摆脱那个Add电话,你应该好好去。或者,取消Add assignmnent和Parent代替Add的{​​{1}}集合。我建议后者。

无论哪种方式,在配置之前都不要显示Controls,即设置PictureBox或最后拨打Button

编辑:我测试了这段代码,它按预期工作:

Parent