溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB6.0中怎么實(shí)現(xiàn)多窗體交互

發(fā)布時(shí)間:2021-07-20 11:26:42 來源:億速云 閱讀:173 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)VB6.0中怎么實(shí)現(xiàn)多窗體交互,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、保持窗體引用的全局性

前面提到,進(jìn)行 .NET 窗體編程時(shí)應(yīng)該牢牢把握下列原則:在訪問窗體之前,你必須進(jìn)行窗體實(shí)例化;如果在項(xiàng)目中有多處代碼訪問同一窗體,則你必須把它的同一實(shí)例指針傳遞給這些代碼。對(duì)于早已習(xí)慣了直接把默認(rèn)窗體實(shí)例當(dāng)成全局變量來使用的VB6.0程序員來說,這可是個(gè)嚴(yán)重的挑戰(zhàn)。好在 .NET 為你提供了兩條出路:其一,把窗體實(shí)例指針保存在全局變量中;其二,把窗體實(shí)例指針傳遞給任何需要訪問它的窗體、類、模塊或者過程。

2、.NET 中的數(shù)值全局化

我以前曾經(jīng)指出,Visual Basic .NET 不支持全局變量,現(xiàn)在我又要說,在 .NET 中可以在某種程度上實(shí)現(xiàn)數(shù)值全局化。這算不算此一時(shí),彼一時(shí)?不,我不是那種人。Visual Basic .NET 確實(shí)不支持全局變量,然而它借助 Shared (相當(dāng)于 C# 中的 static) 變量卻能模擬全局變量。事實(shí)上,前面介紹的 Visual Basic 升級(jí)向?qū)ё詣?dòng)添加到窗體代碼中的 DefInstance 屬性就是 Shared 類成員。無論容納 DefInstance 屬性的窗體類是否已經(jīng)實(shí)例化,它都能被項(xiàng)目中的任何代碼所引用。象這樣的 Shared 屬性不就相當(dāng)于全局變量嗎?因此,你可以創(chuàng)建這樣的類:

Public Class myForms  Private Shared m_CustomerForm As CustomerForm  Public Shared Property CustomerForm() As CustomerForm  Get  Return m_CustomerForm  End Get  Set(ByVal Value As CustomerForm)  m_CustomerForm = Value End Set  End Property  End Class

你需要在***實(shí)例化一個(gè)窗體時(shí),把該窗體的實(shí)例保存到一個(gè)類中:

Dim myNewCust As New CustomerForm()  myNewCust.Show()  myForms.CustomerForm = myNewCust

這里的 CustomerForm 屬性值就是你的窗體實(shí)例。于是,其它代碼就能從項(xiàng)目的任何地方通過它來間接訪問你的窗體了:

Module DoingStuffWithForms  Sub DoExcitingThings()  myForms.CustomerForm.Text = _ DateTime.Now().ToLongTimeString  End Sub  End Module

像這樣把窗體實(shí)例保存為屬性值就能按照你的要求模擬VB6.0中的全局變量。如此模擬的“全局變量”其作用域比類域 (class scope) 高一個(gè)層次。所謂類域,是指變量?jī)H僅在定義它的類(確切地說,應(yīng)該包括模塊、類或窗體)中有效。比類域還低一層次的是過程域 (procedure scope),即變量?jī)H僅在定義它的例程中有效。

上述就是小編為大家分享的VB6.0中怎么實(shí)現(xiàn)多窗體交互了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI