私は自分のアプリケーションにアクティビティ・ロガーを追加しようとしています。私はコードをきれいに保つことを望んでいるので、現在のアクティビティを自分のコードに一度記述し、それを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は」「フォーム」しかし
のメンバーではない、すべての私のフォームは、このサブを呼ぶので、私は本当にサブと呼ばれ、フォーム理解し、更新する私のコードを必要としますそのフォームのlblを具体的に示します。
私はちょうどこのように、フォームの名前を確認することができます:
If Form.Name = "Main_Loader" Then
Main_Loader.lblStatus = ActivityDescription
elseif Form.Name = "..." then
end if
をしかし、再び、それは非常にきれいではないですし、適切な方法のように見えるしていません...誰もがアドバイスしてもらえますか?
'システムを、Windows.Forms'はから基底クラスでありますすべてのフォームが継承します。これは 'MyForm'や' Form1'やフォームクラスの名前と同じではありません。とにかく、変数ではなくUI要素を渡すことでフォームをきれいに保つことを望みます。 – Plutonix
ロガーを呼び出す前にラベルを更新しないでください**あなたは既に適切なスコープを持っています。ログファイルを更新するには、ログクラスを使用してください。それは、呼び出しフォームを把握し、あなたのロギングクラスの適切な型にFormId変数をキャストする必要からあなたを維持します –