Comment tracer une droite entre deux contrôles dans un contrôle utilisateur?
J'ai un usercontrol nommé groupControl: Il dispose de deux flowlayoutpanel - panneau source et la destination du panneau. Il dispose également d'un bouton.
J'ai un autre usercontrol élément nommé. Je vais dynamiquement laïcs N élément de contrôle dans le panneau source et M de l'élément de contrôle dans la cible du panneau.
Je veux il y a des lignes droites entre chaque point de contrôle et le bouton sur groupControl.
Enfin, j'ai un formulaire de test MainForm, il contient également un flowlayoutpanel. Je vais dynamiquement laïcs X groupcontrols sur MainForm.
Comment ai-je pu tracer des lignes droites entre chaque usercontrol élément et le bouton sur le même groupControl?
OriginalL'auteur spspli | 2011-04-05
Vous devez vous connecter pour publier un commentaire.
La Visual Basic Power Pack contient un DataRepeater, et certaines formes (ovale, rectangle..), y compris une ligne. Voir ce lien.
Il est appelé "Visual Basic" Power Pack, mais il peut être utilisé dans un projet C# sans aucun tracas.
Regarder le DataRepeater, non seulement il va vous aider à remplir votre panneau de contrôles personnalisés comme les éléments, mais il contient ce que vous avez besoin de mettre une ligne entre eux.
C'est ok. Je pense que le Visual Basic Power Packs sont déjà installés dans Visual Studio 2010 : jetez un oeil à la "Visual Basic les powerpacks" onglet dans la boîte à outils du concepteur Windows forms.
Oui! Il est là! Super! Merci!
J'ai essayé, mais j'ai besoin de cette Lineshape généré et ajouté à mon panneau dynamiquement au moment de l'exécution: - je utiliser LineShape ligne = new LineShape(...) et myPanel.Les contrôles.Add(ligne);
Il donne une erreur Ajouter ne peut prendre le Système.De Windows.Les formulaires.Contrôle de l'argument de ce pas VB.Les powerpacks type.
OriginalL'auteur Larry
Vous auriez à modifier quelque chose comme cela pour s'adapter à votre corriger les Points de Début et Fin (
pt1
etpt2
), mais...EDIT:
Si vous disposez d'un formulaire appelé
ShippingForm
(comme je l'ai fait ci-dessus), allez à la forme de gestionnaires d'événements dans l'interface graphique et d'ajouter de double-cliquer sur lePant
événement pour générer le vide de la méthode de stub.Je veux juste être le nom de ce que votre forme est. J'ai testé cela sur ma demande de formulaire, qui a été appelé le ShippingForm. Voir les modifications ci-dessus.
OriginalL'auteur jp2code
C'est en fait assez simple. Vous pouvez utiliser le
ShapeContainer
classe comme vous le feriez unCanvas
. Définir le parent de l'LineShape
à laShapeContainer
et le parent de l'ShapeContainer
à laForm
.OriginalL'auteur Austin