1

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

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

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

有没有更聪明的方法来使用鼠标在面板中选择另一个标签?

谢谢,布鲁斯

4

2 回答 2

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

单击标签应更改标签的外观。

于 2012-10-10T00:12:35.913 回答
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
于 2012-10-10T00:40:03.963 回答