ich habe folgendes Problem:
Ich habe noch nicht viel Erfahrungen mit VB.Net und habe gerade in Visual Studio 2 Forms erstellt.
Die 1. Form besteht aus einem "Start" und "Stop"-Button und einem Backgroundworker.
Mit diesem Backgroundworker der 1. Form will ich Text in die ListBox der 2. Form einfügen. Das "Adden" des Textes soll in der DoWork-Methode des Backgroundworkers geschehen.
Mein Gedanke war, den Text per Delegate vom Backgroundworker der Form1 an eine addItem der Form2 zu übergeben, welche diesen Text dann in die ListBox einfügen soll. Die Box bleibt allerdings leer.
Versuche ich das gleiche mit der Ausgabe des Textes in eine Listbox der Form1, funktioniert das problemlos.
Hier mal der Code meines kleinen Testprogramms:
Klasse Form1:
Public Class Form1 Private Sub ZeigeF2() Form2.Show() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ZeigeF2() If Not BackgroundWorker1.IsBusy Then BackgroundWorker1.RunWorkerAsync() End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click BackgroundWorker1.CancelAsync() End Sub Private Sub BackgroundWorker1_DoWork_1(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork While (True) If Form2.ListBox1.InvokeRequired Then Form2.ListBox1.Invoke(New Form2.AddItemsToListBoxDelegate(AddressOf Form2.additem), New Object() {"Ich bin Form 2"}) End If If BackgroundWorker1.CancellationPending Then Exit Sub End If End While End Sub End Class
Klasse Form2:
Public Class Form2 Public Delegate Sub AddItemsToListBoxDelegate(ByVal AddText As String) Public Sub additem(ByVal text As String) ListBox1.Items.Add(text) ListBox1.SelectedIndex = ListBox1.Items.Count - 1 End Sub End Class
Ich hoffe, mir kann jemand bei meinem Problem helfen!
Vielen Dank!
MfG
Triale
Dieser Beitrag wurde von Triale bearbeitet: 08. September 2011 - 20:19