0
我有一个LinkLabel
,我在表单中动态添加了这个属性。只有当CheckBox
被选中时,我的LinkLabel
才会显示。我用这个LinkLabel
到在我的表格中添加一个TextBox
和用户只能添加5最大TextBox
。达到它的最大值后,LinkLabel
将为已禁用(但尚未添加到我的编码中)。将LinkLabel1.Enabled属性设置为false(vb.net)
这是我目前使用的编码。
'This is my CheckBox
Private Sub CheckBoxOthers_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxOthers.CheckedChanged
If CheckBoxOthers.Checked = True Then
PanelOthers.Visible = True 'My TextBox and LinkLabel are inside a Panel
Dim count As Integer = PanelOthers.Controls.OfType(Of Label)().ToList().Count
Dim textbox As New TextBox()
Dim linklabel1 As New LinkLabel()
count = PanelOthers.Controls.OfType(Of TextBox)().ToList().Count
textbox.Location = New System.Drawing.Point(15, 40 * count)
textbox.Size = New System.Drawing.Size(172, 20)
textbox.Name = "textbox_" & (count + 1)
AddHandler textbox.TextChanged, AddressOf TextBox_Changed
PanelOthers.Controls.Add(textbox)
'Adding LinkLabel dynamically
linklabel1.Name = "lnkAddSubj"
linklabel1.Text = "Add Subject"
linklabel1.Location = New Point(300, 3)
AddHandler linklabel1.Click, AddressOf linklabel1_Click
PanelOthers.Controls.Add(linklabel1)
Else
PanelOthers.Visible = False
PanelOthers.Controls.Clear()
End If
End Sub
这里是我的LinkLabel
事件点击时添加文本框,5次最大,但我还没有添加代码来设置的限制尚未
Private Sub linklabel1_Click(sender As Object, e As EventArgs)
Dim count As Integer = PanelOthers.Controls.OfType(Of Label)().ToList().Count
Dim textbox As New TextBox()
count = PanelOthers.Controls.OfType(Of TextBox)().ToList().Count
textbox.Location = New System.Drawing.Point(15, 40 * count)
textbox.Size = New System.Drawing.Size(172, 20)
textbox.Name = "textbox_" & (count + 1)
AddHandler textbox.TextChanged, AddressOf TextBox_Changed
PanelOthers.Controls.Add(textbox)
'So here after LinkLabel clicked 5 times then my LinkLabel will be disabled and I'm trying to do like this but it said LinkLabel1 is not declared
LinkLabel1.Enabled = False
End Sub
如何使LinkLabel
特性能够要设置?我能写它的Click事件,因为我在CheckBox
事件中为它添加了一个处理程序。
你好,谢谢你的回复。我只需要1个'LinkLabel'用于我的表单。如果你有一个好的和简单的编码,我应该善意地与我分享。我正在尝试改进我的编码。 – Emerald
如果你只需要一个,最简单的方法就是在你的'designer'中创建一个,而不是动态编码,我想。通过使用Visual Studio的'designer'页面来创建它,你甚至不需要编写代码来创建。你只需拖放。您只需要为其“Click”事件创建事件处理程序代码 - 我向您展示的代码。 – Ian
哦,是的,你真的是对的。因为我正在考虑动态添加全部内容,所以我甚至不考虑这个小巧的智能解决方案。顺便谢谢你:) – Emerald