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 - Ein- und Umsteiger
Re: .ShowDialog(owner) bei verschiedenen Threads, wie? 
Autor: Manfred X
Datum: 29.03.10 20:00

Hallo!

Ich habe vorhin ein Multithread-Beispiel aus der VB-Doku
um einen kleinen Dialog ergänzt.
Vielleicht hilft das irgendwie ....

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Threading
 
Public Class MyFormControl
    Inherits Form
 
    Delegate Sub AddListItem(ByVal myString As String)
    Delegate Function MessageDelegate(ByVal Message As String) As Boolean
    Public myDelegate As AddListItem
    Public myMessageDelegate As MessageDelegate
    Private myButton As Button
    Private myThread As Thread
    Private myListBox As ListBox
    Private myTextBox As TextBox
 
    Public Sub New()
        myButton = New Button()
        myListBox = New ListBox
        myTextBox = New TextBox
        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)
        myTextBox.Location = New Point(350, 32)
        myListBox.Name = "myListBox"
        myListBox.Size = New Size(200, 95)
        myTextBox.Size = myListBox.Size
        myTextBox.Multiline = True
        myListBox.TabIndex = 2
        ClientSize = New Size(700, 300)
        Controls.AddRange(New Control() {myListBox, myButton, myTextBox})
        Text = " 'Control_Invoke' example "
        myDelegate = New AddListItem(AddressOf AddListItemMethod)
        myMessageDelegate = New MessageDelegate(AddressOf MyDialog)
    End Sub 'New
 
    Shared Sub Main()
        Dim myForm As New MyFormControl()
        myForm.ShowDialog()
    End Sub 'Main
 
    Public Sub AddListItemMethod(ByVal myString As String)
        myListBox.Items.Add(myString)
    End Sub 'AddListItemMethod
 
    Private Function MyDialog(ByVal message As String) As Boolean
        If MsgBox(message, MsgBoxStyle.OkCancel, "Hintergrund") = _
          MsgBoxResult.Cancel Then
            Return False
        Else
            Return True
        End If
    End Function
 
    Private Sub Button_Click(ByVal sender As Object, ByVal 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
 
 
    Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container
        Dim resources As System.ComponentModel.ComponentResourceManager = New _
          System.ComponentModel.ComponentResourceManager(GetType(MyFormControl))
        Me.SuspendLayout()
        '
        '
        'MyFormControl
        '
        Me.ClientSize = New System.Drawing.Size(694, 700)
        Me.Name = "MyFormControl"
        Me.ResumeLayout(False)
        Me.PerformLayout()
 
    End Sub
 
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents textbox2 As System.Windows.Forms.TextBox
 
 
    Private Sub MyFormControl_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
 
    End Sub
 
    Private components As System.ComponentModel.IContainer
End Class 'MyFormControl
 
 
Public Class MyThreadClass
    Private myFormControl1 As MyFormControl
 
    Public Sub New(ByVal myForm As MyFormControl)
        myFormControl1 = myForm
 
    End Sub 'New
 
    Private myString As String
 
    Public Sub Run()
 
        Dim i As Integer
        For i = 1 To 10
            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})
 
            If i = 5 Then
                Dim r As Boolean = _
                CType(myFormControl1.Invoke(myFormControl1.myMessageDelegate, _
                New Object() {"Weitermachen?"}), Boolean)
                If r = False Then Exit For
            End If
        Next i
    End Sub 'Run
End Class 'MyThreadClass
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
.ShowDialog(owner) bei verschiedenen Threads, wie?4.725keco28.03.10 21:02
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.892Manfred X28.03.10 21:15
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.088keco28.03.10 21:31
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.916Manfred X28.03.10 21:39
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.871keco28.03.10 21:47
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.894Manfred X28.03.10 21:58
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.872keco28.03.10 22:03
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.170keco28.03.10 22:16
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.866ModeratorFZelle29.03.10 13:42
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.075keco29.03.10 19:39
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.091ModeratorFZelle29.03.10 19:57
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.906keco29.03.10 20:08
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.837Manfred X29.03.10 20:35
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.120Manfred X29.03.10 20:00
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.101keco31.03.10 09:15
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.910Manfred X31.03.10 09:23
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.896keco31.03.10 09:40
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.817Manfred X31.03.10 10:05
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.891keco31.03.10 12:23
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.905ModeratorDaveS31.03.10 12:49
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.036keco31.03.10 12:59
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.837ModeratorDaveS31.03.10 13:24
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.843keco31.03.10 20:59
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.933ModeratorDaveS01.04.10 09:11
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.876Manfred X01.04.10 09:16
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.825ModeratorDaveS01.04.10 09:42
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.878ModeratorFZelle01.04.10 11:07
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.885keco01.04.10 16:45
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?4.019ModeratorDaveS01.04.10 18:05
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.832keco01.04.10 20:26
Re: .ShowDialog(owner) bei verschiedenen Threads, wie?3.987ModeratorFZelle02.04.10 11:45

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