2013-09-14 4 views
1

У меня есть вкладка в форме. При загрузке формы я получаю текст из текстового файла по строкам и отображая их как метки на вкладке Tabcontrol Tabpage вместе с динамически отображающими кнопками рядом с ними. Теперь на этих кнопках щелкните Я хочу скопировать текст в соответствующие метки. Может ли кто-нибудь предложить, что положить в событие Nextbtn_Click?Как вызвать динамически созданный ярлык из связанного динамически созданного щелчка кнопки в vb.net

Dim FILE_NAME As String = "D:\1.txt"  
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim i As Integer = 1 
    For Each line As String In System.IO.File.ReadAllLines(FILE_NAME) 
     Dim NextLabel As New Label 
     Dim Nextbtn As New Button 
     NextLabel.Text = line 
     Nextbtn.Text = "Copy" 
     NextLabel.Height = 22 
     Nextbtn.Width = 55 
     Nextbtn.Height = 22 
     NextLabel.BackColor = Color.Yellow 
     TabPage2.Controls.Add(NextLabel) 
     TabPage2.Controls.Add(Nextbtn) 
     NextLabel.Location = New Point(10, 10 * i + ((i - 1) * NextLabel.Height)) 
     Nextbtn.Location = New Point(120, 10 * i + ((i - 1) * Nextbtn.Height)) 
     AddHandler Nextbtn.Click, AddressOf Me.Nextbtn_Click 
     i += 1 
    Next 
End Sub 

Private Sub Nextbtn_Click(sender As Object, e As EventArgs) 

End Sub 

ответ

1

Хранить задницу. label в свойстве тега, и вы можете отбросить его, когда вы нажмете на кнопку. Объект отправителя - кнопка, которая в данный момент нажата.

Dim FILE_NAME As String = "D:\1.txt"  
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim i As Integer = 1 
    For Each line As String In System.IO.File.ReadAllLines(FILE_NAME) 
     Dim NextLabel As New Label 
     Dim Nextbtn As New Button 
     Nextbtn.Tag = NextLabel 
     NextLabel.Text = line 
     Nextbtn.Text = "Copy" 
     NextLabel.Height = 22 
     Nextbtn.Width = 55 
     Nextbtn.Height = 22 
     NextLabel.BackColor = Color.Yellow 
     TabPage2.Controls.Add(NextLabel) 
     TabPage2.Controls.Add(Nextbtn) 
     NextLabel.Location = New Point(10, 10 * i + ((i - 1) * NextLabel.Height)) 
     Nextbtn.Location = New Point(120, 10 * i + ((i - 1) * Nextbtn.Height)) 
     AddHandler Nextbtn.Click, AddressOf Me.Nextbtn_Click 
     i += 1 
    Next 
End Sub 

Private Sub Nextbtn_Click(sender As Object, e As EventArgs) 
    Dim s As String = DirectCast(DirectCast(sender, Button).Tag, Label).Text 
End Sub 
+0

Thankyou очень DOÑA он работал как шарм – user2779382

+0

Но предположим, что вместо копирования я хочу, чтобы удалить текст из текстового файла, используя другую динамически созданную кнопку удаления. Не могли бы вы предложить мне что-то, чем взаимодействовать с текстом ярлыка? – user2779382

+0

Сохраните «путь к файлу» в свойстве «Tag», затем вы можете получить доступ к нему с помощью кнопки удаления с помощью той же техники. – OneFineDay

0
Private Sub Clicked(ByVal sender As Object, ByVal e As EventArgs) 
    Dim b As Button = DirectCast(sender, Button) 
    TextBox2.Text = b.Name 
    Clipboard.SetText(b.Name) 

End Sub 
+1

Пожалуйста, не только отправьте код. Попытайтесь объяснить, как вы решили вопрос и т. Д. | И добро пожаловать в StackOverflow! – manniL