0

Je cherche un moyen de pouvoir utiliser le contrôle de tabulation sur mon formulaire principal et de transférer tous les 3 autres formulaires sur ce formulaire principal qui a le contrôle onglet. Le problème est que certaines fonctions sont nommées de la même manière dans chacune des formes cloisonnées que je veux apporter en une seule pour le contrôle de tabulation. Existe-t-il un moyen de séparer le code de chaque formulaire sur la forme principale du contrôle de tabulation afin que je ne dois pas renommer/recoder chacune des 3 formes que je veux placer sur la forme principale du contrôle de tabulation ?vb.net 2008/2010 tabcontrol et le code

À titre d'exemple: Form1 a une fonction appelée upDateMe() form2 a une fonction appelée upDateMe()

Alors maintenant, la principale forme ressemblerait à ceci:

Friend Class frmPW 
    Function sub upDateMe() 
    blah blah 
    End Function 

    Function sub upDateMe() 
    blah blah 
    End Function 

donc quand i mettre les deux codes form1 et form2 sur le formulaire principal où se trouve le contrôle de tabulation, il va me dire que j'ai un nom de fonction en double.

Merci pour toute aide!

David

Répondre

0

Pourquoi ne pas ajouter le what comme paramètre à la mise à jour-sous? Je ne sais pas ce que font les fonctions, mais en supposant qu'elles chargent des données et y attachent des contrôles, vous pouvez fournir un paramètre que vous pouvez utiliser pour séparer la source logique/datasource.

Une autre possibilité serait simplement de renommer les sous-marins afin que vous puissiez distinguer leur but. Enfin, vous pouvez encapsuler toute la logique métier et la liaison de données dans une classe/UserControl et l'instancier pour chaque ex-forme.

+0

Avez-vous un exemple de ceci? – StealthRT

+0

@StealthRT: difficile sans plus d'informations sur ce que font les fonctions et avec vos identifiants cryptiques. Il serait simple d'ajouter une chaîne ou une valeur enum pour identifier ce que votre sub doit faire. Alors vous pouvez 'Select Case' ou' If ... Sinon' ces cas dans le sous-marin. –

+0

Merci pour la réponse, Tim. Cela signifierait pour toutes mes fonctions que je devrais faire une déclaration if/else dont j'ai BEAUCOUP d'entre eux de sorte que ce ne serait pas très piraté. – StealthRT

0

Considérer les contrôles utilisateur.

Il existe de nombreux exemples disponibles. Vous voudrez peut-être commencer par cette procédure pas à pas sur MSDN: Walkthrough: Authoring a Composite Control with Visual Basic

Une chose à surveiller: Le type de projet que vous allez créer est en fait « Windows Forms Control Library », pas « contrôle bibliothèque Windows » comme la « Création du Section du projet, étape 2 dit.

Vous devez créer un contrôle utilisateur pour chaque formulaire de votre projet. Chacun de ces UC peut être ajouté à un onglet de votre formulaire principal et peut être traité comme n'importe quel autre contrôle Windows standard. Par exemple - vous pouvez créer un UC pour votre formulaire1 appelé ctlForm1 et l'ajouter à la barre d'outils de Visual Studio. Vous pouvez utiliser le concepteur WinForm pour supprimer une instance de votre contrôle dans une page à onglet de votre nouveau formulaire principal et l'appeler, disons, ucForm1. Pour appeler la méthode upDateMe UC vous suffit d'appeler:

ucForm1.upDateMe() 

Vous pouvez thne créer une UC pour votre form2, ajoutez à votre barre d'outils et déposez une instance de celui-ci sur une page autre onglet sur votre formulaire principal (appelant cette instance ucForm2). Vous pouvez appeler la méthode upDateMe de cette commande comme ceci:

ucForm2.upDateMe() 

Vous voulez en savoir plus sur les contrôles utilisateur; Ils constituent un excellent moyen d'encapsuler la logique, les événements et les éléments de l'interface utilisateur dans des composants discrets et réutilisables.

+0

Avez-vous un exemple de ceci? Comment pourrais-je mettre l'usercontrol sur les onglets? – StealthRT

+0

@Stealth - Ma réponse a pris un peu de temps et j'ai juste modifié ma réponse. –