本文整理汇总了VB.NET中System.Windows.Forms.Control.Invoke方法的典型用法代码示例。如果您正苦于以下问题:VB.NET Control.Invoke方法的具体用法?VB.NET Control.Invoke怎么用?VB.NET Control.Invoke使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。
在下文中一共展示了Control.Invoke方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。
示例1: MyFormControl
' The following example demonstrates the 'Invoke(Delegate)' method of 'Control class.
' A 'ListBox' and a 'Button' control are added to a form, containing a delegate
' which encapsulates a method that adds items to the listbox.This function is executed
' on the thread that owns the underlying handle of the form. When user clicks on button
' the above delegate is executed using 'Invoke' method.
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Threading
Public Class MyFormControl
Inherits Form
Delegate Sub AddListItem()
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
Shared Sub Main()
Dim myForm As New MyFormControl()
myForm.ShowDialog()
End Sub
Public Sub AddListItemMethod()
Dim myItem As String
Dim i As Integer
For i = 1 To 5
myItem = "MyListItem" + i.ToString()
myListBox.Items.Add(myItem)
myListBox.Update()
Thread.Sleep(300)
Next i
End Sub
Private Sub Button_Click(sender As Object, e As EventArgs)
myThread = New Thread(New ThreadStart(AddressOf ThreadFunction))
myThread.Start()
End Sub
Private Sub ThreadFunction()
Dim myThreadClassObject As New MyThreadClass(Me)
myThreadClassObject.Run()
End Sub
End Class
' The following code assumes a 'ListBox' and a 'Button' control are added to a form,
' containing a delegate which encapsulates a method that adds items to the listbox.
Public Class MyThreadClass
Private myFormControl1 As MyFormControl
Public Sub New(myForm As MyFormControl)
myFormControl1 = myForm
End Sub
Public Sub Run()
' Execute the specified delegate on the thread that owns
' 'myFormControl1' control's underlying window handle.
myFormControl1.Invoke(myFormControl1.myDelegate)
End Sub
End Class
示例2: MyFormControl
' 导入命名空间
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
Shared Sub Main()
Dim myForm As New MyFormControl()
myForm.ShowDialog()
End Sub
Public Sub AddListItemMethod(myString As String)
myListBox.Items.Add(myString)
End Sub
Private Sub Button_Click(sender As Object, e As EventArgs)
myThread = New Thread(New ThreadStart(AddressOf ThreadFunction))
myThread.Start()
End Sub
Private Sub ThreadFunction()
Dim myThreadClassObject As New MyThreadClass(Me)
myThreadClassObject.Run()
End Sub
End Class
Public Class MyThreadClass
Private myFormControl1 As MyFormControl
Public Sub New(myForm As MyFormControl)
myFormControl1 = myForm
End Sub
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
End Class