| |

VB.NET - Ein- und UmsteigerRe: .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 |  |
 .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.725 | keco | 28.03.10 21:02 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.892 | Manfred X | 28.03.10 21:15 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.088 | keco | 28.03.10 21:31 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.916 | Manfred X | 28.03.10 21:39 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.871 | keco | 28.03.10 21:47 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.894 | Manfred X | 28.03.10 21:58 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.872 | keco | 28.03.10 22:03 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.170 | keco | 28.03.10 22:16 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.866 | FZelle | 29.03.10 13:42 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.075 | keco | 29.03.10 19:39 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.091 | FZelle | 29.03.10 19:57 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.906 | keco | 29.03.10 20:08 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.837 | Manfred X | 29.03.10 20:35 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.120 | Manfred X | 29.03.10 20:00 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.101 | keco | 31.03.10 09:15 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.910 | Manfred X | 31.03.10 09:23 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.896 | keco | 31.03.10 09:40 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.817 | Manfred X | 31.03.10 10:05 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.891 | keco | 31.03.10 12:23 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.905 | DaveS | 31.03.10 12:49 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.036 | keco | 31.03.10 12:59 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.837 | DaveS | 31.03.10 13:24 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.843 | keco | 31.03.10 20:59 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.933 | DaveS | 01.04.10 09:11 |         Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.876 | Manfred X | 01.04.10 09:16 |          Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.825 | DaveS | 01.04.10 09:42 |          Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.878 | FZelle | 01.04.10 11:07 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.885 | keco | 01.04.10 16:45 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.019 | DaveS | 01.04.10 18:05 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.832 | keco | 01.04.10 20:26 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.987 | FZelle | 02.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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|