vb.net - vb.net动态链接标签
问题描述
如何找出在 Visual Basic 上单击了哪个动态链接?我有一些根据数据集动态创建的 LinkLabels,我想打开一个包含来自该数据集的信息的新表单,但我需要知道如何根据单击的链接加载表单.. 下面的代码.../ /该函数根据数据表中的行创建链接标签
Sub DynamicLabels()
Dim i As Integer
Dim x As Integer = 14
Dim y As Integer = 50
Dim tp As TabPage = tabControl1.TabPages(1)
If db.HasConnection() Then
If db.SQLDS IsNot Nothing Then
db.SQLDS.Clear()
End If
db.RunQuery("SELECT c.courseSubj AS Subject, c.courseNum AS CourseNum, r.className AS ClassName, t.tName AS Professor
FROM course c, classRoom r, teacher t, classroom_student u, student s
WHERE c.courseId=r.course_id AND t.teacherId=r.teacher_id AND s.studentId=u.student_id AND u.classroom_id=r.classId AND s.sUsername='" & Login.Usr.Text & "' ")
For i = 0 To db.SQLDS.Tables(0).Rows.Count - 1
ReDim MyLabel(db.SQLDS.Tables(0).Rows.Count)
y += 50
With MyLabel(i)
MyLabel(i) = New LinkLabel()
MyLabel(i).Name = "linklabel" & i.ToString
MyLabel(i).Location = New Point(x, y)
MyLabel(i).Size = New Size(700, 40)
MyLabel(i).Font = New Font("Microsoft Sans Serif", 14)
MyLabel(i).Text = String.Format(CType(db.SQLDS.Tables(0).Rows(i).Item("Subject"), String) & " " & CType(db.SQLDS.Tables(0).Rows(i).Item("CourseNum"), String) & " " & CType(db.SQLDS.Tables(0).Rows(i).Item("ClassName"), String) & ": " & CType(db.SQLDS.Tables(0).Rows(i).Item("Professor"), String))
AddHandler MyLabel(i).LinkClicked, AddressOf label_LinkClicked
End With
tp.Controls.Add(MyLabel(i))
Next
End If
End Sub
我想加载一个包含数据集中一些信息的新表单。
解决方案
我只是添加了一个标签来演示。您添加的每个标签都将具有相同的事件过程(AddressOf 部分),但添加处理程序直接引用新标签变量(mylabel.Click)
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim mylabel As New Label With {
.Text = "New Label",
.Name = "newLabel",
.Location = New Point(400, 100)
}
AddHandler mylabel.Click, AddressOf aLabel_Click
Controls.Add(mylabel)
End Sub
这是您的活动程序
Private Sub aLabel_Click(sender As Object, e As EventArgs)
Dim EventLabel As Label = DirectCast(sender, Label)
Dim LabelText As String = EventLabel.Text
'or any other property of the label you need to use
MessageBox.Show(LabelText)
End Sub
推荐阅读
- docker - 设置就绪、活跃度或启动探测
- matlab - 在 MATLAB 上使用 ginput 命令获取位置而不点击绘图
- r - 将数字一个在另一个之上
- java - Android CameraX (Java) 预览方向错误
- ruby-on-rails - 如何记录 ActionController::RoutingErrors 的请求详细信息?
- ios - SwiftUI 列表未显示所有项目
- python - 如何使用管道运算符和多个参数调用python“子进程”
- pandas - 在 pandas 的 groupby() 中使用 list 作为参数,并且没有任何关键元素与列或索引名称匹配
- testing - 元素的不同行为的 ID 相同时的断言错误
- ios - 有没有一种方法可以在 iOS 上对 Fairplay 加密流进行后处理