1
在具有多個多用途子表單的MDI WinForms環境中,每個人都說在同一時間只保留一個這種表單的一個實例的簡單方法是實現Singleton爲了這。某些搜索後,我發現這種方法(VB .NET語言):如何在顯示錶單之前將信息發送到單例表單
Public Class FormSingleton(Of TForm As {Form, New})
Private Shared _instance As TForm
Public Shared ReadOnly Property Form() As TForm
Get
If _instance Is Nothing OrElse _instance.IsDisposed Then
_instance = New TForm
End If
Return _instance
End Get
End Property
Public Shared Sub Show()
'Ensure the form is visible and has focus.
With Form
.Show()
.Activate()
End With
End Sub
End Class
,當然還有,用於顯示窗體的代碼將是:
FormSingleton(Of MyForm).Show()
現在我的問題是如何發送在表單實際顯示之前,將一些信息提供給「Singleton」表單。必須發送的信息的類型不同於一種形式。
THX
除了爲每個表單編寫一個方法之外......挑戰是如何讓這個方法可以從基本Form類中使用,因爲AddFacts不是Form類的成員,並且發生錯誤,當然。 –
@ValentinVucea嗯......好點。也許需要從Form派生MyForm,添加新的方法,然後FormSingleton(Of TForm {MyForm,New})。但是,這可能會有點像努力工作。 –