在我的程序中,我有一个特定宽度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
但按钮始终使用表格的坐标系。
提前感谢您的帮助。
答案 0 :(得分:3)
此:
Me.Controls.Add(Btn)
将Parent
的{{1}}设置为表单。您没有Button
到一个父级并明确指定其他父级。做一个或另一个。简而言之,摆脱那个Add
电话,你应该好好去。或者,取消Add
assignmnent和Parent
代替Add
的{{1}}集合。我建议后者。
无论哪种方式,在配置之前都不要显示Controls
,即设置PictureBox
或最后拨打Button
。
编辑:我测试了这段代码,它按预期工作:
Parent