我正在使用vb.net,我正在尝试创建一个覆盖标签的透明按钮。我们的想法是,您可以单击此按钮选择您正在编辑的标签。标签可以是可见的或不可见的,因此用户可以在特定时间看到其后面的另一个标签,因此只需单击标签就不起作用。我已将按钮的平面样式设置为平面,将背景颜色设置为网络>透明。我知道按钮是透明的,因为你仍然可以看到一切背后的背景。我也知道按钮遮挡了文本,因为如果我将按钮放在标签的一半上,那么我仍然可以看到未覆盖的一半。我完全不知所措,所以任何帮助都会受到赞赏。由于我刚设置了这个帐户,我没有足够的声誉来发布两个以上的链接,所以这就解释了空格。
编辑: 透明按钮位于网格中的每个方块上。我想单击透明按钮,使您感觉要点击网格方块。然后目的是单击旁边的垫上的数字来编辑该正方形。您应该能够看到图中没有按钮的“1”。我希望能够将按钮放在那里,以便您仍然可以单击它们来选择单元格,但我仍然希望看到后面标签上的数字。那么我该如何实现呢?
它应该如何显示(按钮被删除):
按钮的外观如何:
如何将按钮移动到一半模糊的用户控件:
我的按钮属性(1/2):
我按钮的属性(2/2):
答案 0 :(得分:0)
根据您所描述的内容,我发现您无需在标签上隐藏按钮。我建议您不要重叠控件 - 特别是如果您允许用户调整表单的大小。
作为一种解决方案,我会更新点击事件中所选按钮的文本,并且按钮中的初始文本为空(即"")。
下面是一个winforms示例,试图复制您所描述的内容:
http://i.imgur.com/pWeqVHt.png
Public Class Form1
Private _selButton As Button 'Current button selected
Public Sub New()
InitializeComponent()
AddHandler btn1.Click, AddressOf UpdateText_Click
AddHandler btn2.Click, AddressOf UpdateText_Click
AddHandler btn3.Click, AddressOf UpdateText_Click
AddHandler btn4.Click, AddressOf UpdateText_Click
AddHandler btn5.Click, AddressOf UpdateText_Click
AddHandler btn6.Click, AddressOf UpdateText_Click
AddHandler btn7.Click, AddressOf UpdateText_Click
AddHandler btn8.Click, AddressOf UpdateText_Click
AddHandler btn9.Click, AddressOf UpdateText_Click
AddHandler btn0.Click, AddressOf UpdateText_Click
End Sub
Private Sub UpdateText_Click(sender As Object, e As EventArgs)
Dim thisButton = DirectCast(sender, Button)
If (_selButton IsNot Nothing) Then
_selButton.Text = thisButton.Text
_selButton.BackColor = SystemColors.Control
End If
End Sub
Private Sub matrixbtn1_Click(sender As Object, e As EventArgs) Handles matrixbtn1.Click
_selButton = matrixbtn
matrixbtn1.BackColor = Color.Aqua
End Sub
End Class
答案 1 :(得分:0)