2010-10-14 5 views
2

J'ai créé une boîte de dialogue comme WinForm et je appelle que WinForm comme ceci:Ajout d'un Surchargé Constructor Pour un WinForm

Dim dlgEditChangeOrder As New dgEditChangeOrder 
     Dim dlgResult As DialogResult 

     dlgResult = dlgEditChangeOrder.ShowDialog 

... assez simple. Je veux être en mesure de définir la visibilité d'un contrôle sur le formulaire de victoire lorsque le formulaire de victoire est appelé. Je voudrais le faire en tant que constructeur pour que je puisse écrire ce qui suit ....

Dim dlgEditChangeOrder As New dgEditChangeOrder(visibleIsTrue) 

Quelqu'un peut-il me donner le code contructor pour y arriver? La raison pour laquelle je suis concerné est que je ne sais pas s'il est légal de le faire dans une winform puisque le winform est chargé par la fonction IntializeComponent() préconfigurée

Répondre

9

Il est parfaitement acceptable de surcharger les constructeurs. Assurez-vous simplement d'appeler le InitializeComponent() dans votre constructeur surchargé, car il est nécessaire pour configurer le formulaire. Cependant, tant que vous faites cela, vous êtes libre de surcharger le constructeur (ou simplement de changer celui qui existe).


Edit:

Il suffit d'ajouter dans votre code sous-jacent:

Public Sub New(ByVal isVisible As Boolean) 
    ' This call is required by the designer. 
    InitializeComponent() 

    ' Do what you want with isVisible here 

End Sub 

Si vous voulez avoir un constructeur par défaut, aussi, vous pouvez l'ajouter (ce n'est pas nécessaire, cependant) .

+0

Je ne vois pas un constructeur dans le code derrière. Dois-je créer –

+0

Dois-je créer Public Sub New() et Public Sub New (Byval v comme Booléen)? –

+0

@Nick: Vous n'avez pas besoin des deux (sauf si vous le voulez) - juste le booléen. Si vous n'avez pas de constructeur par défaut, vous serez toujours obligé de spécifier le booléen –