我正在嘗試將活動記錄器添加到我的應用程序中。我希望保持我的代碼清潔,因此只想在我的代碼中聲明一次當前活動,然後將其顯示在lblStatus中並更新日誌文件。我試圖做到這一點是這樣的:在通過的表格上訪問標籤
我路過像這樣我的正常形式:
LogActivity.LogActivity(Me, "Checking program directories...")
而且這是在做什麼工作的子。
Public Sub LogActivity(FormID As Form, ByVal ActivityDescription As String)
'Log Activity code is here
'Update Status Label on form
FormID.lblStatus = ActivityDescription
end sub
但是Visual Studio的不理解語法,我可以理解爲什麼,但我不知道如何正確地做到這一點。
「lblStatus」不是「形式」
不過的一員,我的所有形式將調用此子,所以我真的需要我的代碼,以瞭解哪些形式稱爲子和更新特別是在那種形式上。
我可以只檢查表單的名字是這樣的:
If Form.Name = "Main_Loader" Then
Main_Loader.lblStatus = ActivityDescription
elseif Form.Name = "..." then
end if
但同樣,這不是很乾淨,似乎不是正確的方法......誰能指教?
'系統,Windows.Forms'是從基類所有形式都繼承。它與「MyForm」或「Form1」不同或者你的表單類被命名。爲了保持表單清潔的希望將通過傳遞UI元素而不是變量來破滅, – Plutonix
爲什麼不在更新標籤**之前**你打電話給你的記錄器,你已經有了適當的範圍。使用您的記錄器類僅更新您的日誌文件。它會讓你無需弄清楚調用形式,並將你的FormId變量轉換爲你的日誌類中的正確類型。 –