新聞中心
在VB.NET中怎么實(shí)現(xiàn)多窗體同步
建立一個(gè)名為 modGeneral 的模塊并加入下面一行代碼:
創(chuàng)新互聯(lián)建站專注于呼瑪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開發(fā)。呼瑪網(wǎng)站建設(shè)公司,為呼瑪?shù)鹊貐^(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
Friend DataStuff As DataClass
這一行代碼為我的新類 DataClass 創(chuàng)建了一個(gè)友元變量,使你可以完全訪問程序集,對這個(gè)簡單例子來說,也就是指完整的應(yīng)用程序。然后我添加了下面的代碼到 Form1 的 Load 事件:
DataStuff = New DataClass
Me.txt1stData.DataBindings.Add("Text", DataStuff, "MyData")
Me.txt2ndData.DataBindings.Add("Text", DataStuff, "MoreData")
第一行建立一個(gè) DataClass 新實(shí)例。下面兩行代碼將數(shù)據(jù)綁定到 textbox 控件。對這個(gè)窗體而言,就這么些操作!
現(xiàn)在,你怎樣讓它們與 Form2 和其它窗體上的數(shù)據(jù)同步呢?將下面兩行加入到 Form 2 的窗體load 事件中去:
Me.txt1stData.DataBindings.Add("Text",DataStuff, "MyData")
Me.txt2ndData.DataBindings.Add("Text",DataStuff, "Moredata")
這個(gè)方法容易確保所有窗體上的幾乎任何類型的數(shù)據(jù)處于同步狀態(tài)。你可以簡單地將控件綁定到某個(gè)類的相同實(shí)例上,這就行了。
vb.net如何讓兩個(gè)窗體并發(fā)運(yùn)行
Imports System.Threading
Public Class Form1
Dim t1, t2 As Thread
Dim tt1
Private Delegate Sub voiddelegate(ByVal i As Integer)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Form2.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
t1 = New Thread(AddressOf test)
tt1 = 1
t1.Start()
tt1 = 2
t2 = New Thread(AddressOf test)
t2.Start()
' Timer1.Start()
End Sub
Private Sub updateui(ByVal i As Integer)
Form2.Label1.Text = i.ToString
Form2.Label2.Text = i.ToString
End Sub
'把循環(huán)放到線程中運(yùn)行會(huì)好一些,其實(shí)主要事務(wù)是對窗體控件的操作時(shí)多線程意義不大,因?yàn)樵L問窗體的代碼依然要在窗體線程中運(yùn)行。
Private Sub test()
Dim d As voiddelegate = AddressOf updateui
For i = 0 To 9000
Me.Invoke(d, i)
Next
End Sub
'如果放在計(jì)時(shí)器中運(yùn)行效果好的多
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static i As Integer = 0
i += 1
If i 9000 Then Timer1.Stop() : i = 0
Form2.Label1.Text = i.ToString
Form2.Label2.Text = i.ToString
End Sub
End Class
'如果在另一線程中用Application.run 打開窗體確實(shí)能行,不過窗體間相互操作不起作用,這個(gè)尚待研究中。
vb.net 怎么同時(shí)打開多個(gè)窗口?
在項(xiàng)目中右鍵點(diǎn)擊添加窗體。在代碼中需要顯示該窗體的地方寫入如下代碼:“form2.show()”form2是你窗體的name屬性……
本文標(biāo)題:vb.net多窗體操作 vb多窗體程序設(shè)計(jì)
網(wǎng)站路徑:http://fisionsoft.com.cn/article/doscpci.html