我正在用 VB.NET 编写一个塑料卡片打印程序。主要形式是设计卡片。
我在运行时将标签创建到 Panel 控件中,用户可以在它是活动控件时移动、编辑、调整大小等。创建几个标签后,我无法更改所选标签以进行编辑。
我尝试在创建控件时添加一个带有控件列表的组合框,并使用 for 循环查找控件并将其设为活动控件,但这并不是真正的用户友好。
有没有更聪明的方法来使用鼠标在面板中选择另一个标签?
谢谢,布鲁斯
将面板添加到表单并尝试以下操作:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim lbl As New Label
AddHandler lbl.Click, AddressOf lbl_Click
Panel1.Controls.Add(lbl)
lbl.Top = 30 * i
lbl.Text = "Hello!"
Next
End Sub
Private Sub lbl_Click(sender As System.Object, e As System.EventArgs)
Dim lbl As Label = DirectCast(sender, Label)
lbl.Font = New Font(System.Drawing.FontFamily.GenericMonospace, 12)
End Sub
End Class
单击标签应更改标签的外观。
我喜欢 SSS 的回答,但我会避免创建Private Sub
事件处理程序,而只使用内联 lambda:
For i As Integer = 0 To 4
Dim lbl As New Label
AddHandler lbl.Click,
Sub (s, e)
lbl.Font = New Font(FontFamily.GenericMonospace, 12)
End Sub
Panel1.Controls.Add(lbl)
lbl.Top = 30 * i
lbl.Text = "Hello!"
Next