选择运行时标签

时间:2012-10-09 00:51:36

标签: vb.net runtime labels

我正在用VB.NET编写一个塑料卡片打印程序。主要形式是设计卡片。

我在运行时将标签创建为Panel控件,用户可以在活动控件时移动,编辑,调整大小等。创建几个标签后,我无法更改所选标签以进行编辑。

我尝试在创建控件时添加一个带有控件列表的组合框,然后使用for循环查找控件并使其成为活动控件,但这并不是用户友好的。

是否有更聪明的方法可以使用鼠标在Panel中选择另一个标签?

谢谢, 布鲁斯

2 个答案:

答案 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