我正在用VB.NET编写一个塑料卡片打印程序。主要形式是设计卡片。
我在运行时将标签创建为Panel控件,用户可以在活动控件时移动,编辑,调整大小等。创建几个标签后,我无法更改所选标签以进行编辑。
我尝试在创建控件时添加一个带有控件列表的组合框,然后使用for循环查找控件并使其成为活动控件,但这并不是用户友好的。
是否有更聪明的方法可以使用鼠标在Panel中选择另一个标签?
谢谢, 布鲁斯
答案 0 :(得分:0)
将一个面板添加到表单并尝试:
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
单击标签应更改标签的外观。
答案 1 :(得分:0)
我喜欢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