У меня есть LinkLabel
, который я добавил динамически в свою форму. Мой LinkLabel
будет отображаться только при проверке CheckBox
. Я использовал это 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
событие, чтобы добавить TextBox при нажатии, в 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 для ее создания, вам даже не нужно создавать код для создания. Вы просто перетаскиваете. Вам нужно только создать код обработчика событий для своего события «Click» - того, что я вам показал. – Ian
О да, да, вы действительно правы. Потому что я собираюсь добавить все динамически, поэтому я даже не думаю об этом маленьком умном решении. Кстати спасибо вам большое :) – Emerald