accès au formulaire de usercontrol
J'ai un contrôle de l'utilisateur, qui doit accéder à des variables et des classes statiques sur Form1.cs. Je ne peux pas trouver un exemple de travail sur google. Tous les indicateurs s'il vous plaît? Merci!
namespace WinApp1
{
public partial class Form1 : Form
{
Public MyCustomClass myClass; //need to access this
public Form1()
{
}
}
public static class Global {
public static myGlobalVar; //Need to Access This
}
}
OriginalL'auteur Kristian | 2013-02-17
Vous devez vous connecter pour publier un commentaire.
Utilisation
this.Parent
dans UserControl pour obtenir le formulaire parent :vous pouvez alors accéder au champ public/propriété :
Noter que si le contrôle utilisateur est placé dans un Panneau à l'intérieur de la Forme, vous aurez besoin d'obtenir parent de parent.
Vous pouvez accéder à la classe statique par son nom :
Avez-vous mis des espaces de noms différents pour Form1 et le contrôle usercontrol?
l'espace de noms est le nom de "WinApp1" pour à la fois la forme et de contrôle de l'utilisateur.
C'est étrange, essayez
WinApp1.Form1
et voir ce qui se passeMon erreur, j'ai renommé le formulaire, j'ai été en mesure d'y accéder à l'aide: WinForm1.frm1 myParent = ce.Parent; mais cela me donne une autre erreur: Impossible de convertir implicitement le type de Système.De Windows.Les formulaires.Contrôle' à 'WinApp1.frm1'. Une conversion explicite existe (vous manque un plâtre?)
OriginalL'auteur Abdusalam Ben Haj
Vous pouvez utiliser FindForm()
Mais vous devriez faire un pas en arrière et voir si c'est la meilleure solution. C'est une forte dépendance qui réduit la testabilité et la réutilisation facteur de votre contrôle.
Par exemple envisager l'introduction d'une interface avec les membres dont vous avez besoin pour votre contrôle et de recherche dans la relation parent hirachy ou l'Injecter en tant que paramètre ,...
Partir de là, vous pouvez utiliser le contrôle sur ma situation. Il y a peut être aussi beaucoup plus de solutions. Juste envie de vous faire croire que si il n'y a pas rien de mieux que de s'appuyer sur la forme..
OriginalL'auteur Boas Enkler
Utilisation :
maintenant vous avez votre formulaire principal. tout changement sur frm pourra être répercuté sur le formulaire principal.
si vous souhaitez accéder à un certain contrôle sur votre principale utilisation de la forme:
1-Créer un contrôle du type que vous souhaitez accéder(Ex:l'Étiquette):
2-placer l'étiquette avec renvoyé de contrôle de résultat de recherche:
3-effectuez vos modifications sur l'Étiquette:
Vos modifications seront répercutées sur le contrôle.
Espérons que cela aide.
OriginalL'auteur Ali.Rashidi
Je pensais que cela.Parent renvoie à la page réelle que le contrôle de l'utilisateur est placé? Et puis, vous avez accès aux membres publics
OriginalL'auteur d1mitar
dans votre code UserControl, en vertu de l'événement de Clic ou quoi que ce soit:
Espère que cela aide 🙂
OriginalL'auteur Jared Drake
En cas de contrôle de l'utilisateur est à l'intérieur de panneaux et vous voulez accéder au formulaire
vous pouvez utiliser
OriginalL'auteur Ashraf Eldawody