vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Threadübergreifender Zugriff auf Steuerelement 
Autor: Moderatorralf_oop (Moderator)
Datum: 19.07.07 09:12

Du musst die Invoke()-Methode des jeweiligen Steuerelementes verwenden, also z.B. txtResult.Invoke(...). Hier ein Beispiel aus der MSDN (die wichtigen Stellen habe ich mal hervorgehoben):

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Threading
 
Public Class MyFormControl
   Inherits Form
 
   Delegate Sub AddListItem(myString As String)
   Public myDelegate As AddListItem
   Private myButton As Button
   Private myThread As Thread
   Private myListBox As ListBox
 
   Public Sub New()
      myButton = New Button()
      myListBox = New ListBox()
      myButton.Location = New Point(72, 160)
      myButton.Size = New Size(152, 32)
      myButton.TabIndex = 1
      myButton.Text = "Add items in list box"
      AddHandler myButton.Click, AddressOf Button_Click
      myListBox.Location = New Point(48, 32)
      myListBox.Name = "myListBox"
      myListBox.Size = New Size(200, 95)
      myListBox.TabIndex = 2
      ClientSize = New Size(292, 273)
      Controls.AddRange(New Control() {myListBox, myButton})
      Text = " 'Control_Invoke' example "
      myDelegate = New AddListItem(AddressOf AddListItemMethod)
   End Sub 'New
 
   Shared Sub Main()
      Dim myForm As New MyFormControl()
      myForm.ShowDialog()
   End Sub 'Main
 
   Public Sub AddListItemMethod(myString As String)
      myListBox.Items.Add(myString)
   End Sub 'AddListItemMethod
 
   Private Sub Button_Click(sender As Object, e As EventArgs)
      myThread = New Thread(New ThreadStart(AddressOf ThreadFunction))
      myThread.Start()
   End Sub 'Button_Click
 
   Private Sub ThreadFunction()
      Dim myThreadClassObject As New MyThreadClass(Me)
      myThreadClassObject.Run()
   End Sub 'ThreadFunction
End Class 'MyFormControl
 
Public Class MyThreadClass
   Private myFormControl1 As MyFormControl
 
   Public Sub New(myForm As MyFormControl)
      myFormControl1 = myForm
   End Sub 'New
   Private myString As String
 
   Public Sub Run()
 
      Dim i As Integer
      For i = 1 To 5
         myString = "Step number " + i.ToString() + " executed"
         Thread.Sleep(400)
         ' Execute the specified delegate on the thread that owns
         ' 'myFormControl1' control's underlying window handle with
         ' the specified list of arguments.
         myFormControl1.Invoke(myFormControl1.myDelegate, New Object() _
           {myString})
      Next i
 
   End Sub 'Run
End Class 'MyThreadClass

Ralf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Threadübergreifender Zugriff auf Steuerelement5.709weberph19.07.07 04:05
Re: Threadübergreifender Zugriff auf Steuerelement4.610Melkor19.07.07 09:09
Re: Threadübergreifender Zugriff auf Steuerelement4.668Moderatorralf_oop19.07.07 09:12
Re: Threadübergreifender Zugriff auf Steuerelement4.590Melkor19.07.07 10:08
Re: Threadübergreifender Zugriff auf Steuerelement4.298Griever22.07.07 20:56
Re: Threadübergreifender Zugriff auf Steuerelement4.295lpinter22.07.07 21:45
Re: Threadübergreifender Zugriff auf Steuerelement4.661Moderatorralf_oop22.07.07 23:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel