我有2種形式:街道和地址 我想定義一個變量在他們每一個具有相同的名稱,以便當我從一個過程調用任何形式無論使用哪種形式,我都可以使用該變量。如何通過/參考形式類參數到/從其他程序
例如,街道的形式是這樣的
Public Class Street
Public ID As Integer = 0
Private Sub LoadForm()
Dim myID As integer = ID
End Sub
End Class
和地址的形式應該是這樣的:
Public Class Address
Public ID As Integer = 0
Private Sub LoadForm()
Dim myID As integer = ID
End Sub
End Class
我ParentMDI菜單是:
Private Sub AddressClick()
Call Address(Address)
End Sub
Private Sub StreetClick()
Call Address(Street)
End Sub
和具有打開表單的過程的模塊如下所示:
Module Caller
Public Sub Address(ByVal frm As Form)
'...several codes here
If IamHappy Then
frm.ID = 2'this is illegal because ID is not part of form parameters
Else
frm.ID = 3'this is illegal because ID is not part of form parameters
End if
frm.show()
End Sub
End Module
基本上,我不想菜單做'辛勤工作',因爲窗體可以從幾個不同的菜單/來源調用。我希望模塊中的公共過程是一個負責在打開它之前從我的窗體參數中賦值的人。
我已經看過如何發送一個類作爲參數的討論,但是這並不能幫助我在表單類中獲得聲明值「ID」。我在想可能有辦法創建我自己的變量來成爲我的表單的一部分?或者採用哪種方法來實現這一點。
編輯提供一些更多的信息
- 一個單獨的登錄過程會爲我設置一個公共用戶名
- MDI菜單想告訴我形成了用戶想要登錄 後打開
- 來電模塊假設將請求的格式爲 的信息與用戶的ID結合起來。
- a)在打開表單之前設置表單的狀態,例如,如果表單標籤= 2,那麼不要爲該用戶打開它(我可以直到此處),b)使用調用者模塊設置表單的狀態,然後繼續並打開它。這是問題所在。例如,我想設置printID爲1 =用戶可以打印;或2,用戶不應該打印。
我想管理4. b)在公開聲明的模塊中而不是在菜單中或在特定的表格中,因爲我在這個應用程序中有很多形式。
除非有這更好的方式比我如何接近它...
感謝。
感謝。我從你的帖子中挑選了一些我正在嘗試的想法。特別是創建基類表單。我不知道如何實現過載。但第三個建議正確地說就是我想要避免的 - 我可以有很多形式! –
表單基類的問題在於需要編譯IDE才能獲取屬性。如果一個* class *引用了frmAddr As Address的形式,那麼你可以引用一切,就像你想要的那樣,沒有特別的步驟 – Plutonix
我用我正在嘗試的東西撞到一堵磚牆。那麼如何用類實現這一點 - 我無法建立連接,因爲我只知道如何創建獨立於表單的類。讓我更詳細地解釋我正在嘗試做什麼,以便你能提供幫助。該ID用於檢查用戶是否有權打印數據。如果ID = 1,表單中的打印按鈕將被禁用。所以我需要一種外部的方式來設置這個ID在每個窗體打開之前的值。我現在使用標籤,但一次只能限制一個變量,因此不靈活。 –