Formulaire de jeu en tant que Parent jeter l'exception de “Haut-niveau de contrôle ne peut pas être ajouté à un contrôle”
Je veux accéder aux variables d'un formulaire à partir d'un autre formulaire. En cliquant sur un bouton à l'intérieur de mon formulaire Principal, je veux mettre mon formulaire Principal en tant que Parent, puis ouvrir un autre formulaire (formulaire enfant) au cours de laquelle je vais accéder à des variables du formulaire Principal. Mon gestionnaire de clic est comme suit:
private void btnSystem_Click(object sender, EventArgs e)
{
Form_EnterPassword EP = new Form_EnterPassword();
EP.Parent = this; //error: Top-level control cannot be added to a control
EP.ShowDialog();
}
Il compile très bien sans aucune erreur. Cependant, lorsque je lance le formulaire Principal et cliquez sur le bouton Système, il me lance une exception. - Je faire quelque chose de similaire dans un autre code (pas le mien) avec le même bouton, cliquez, et rencontre aucune erreur (seulement avec réglage formulaire Principal en tant que Parent).
Ce que je fais mal? Est-il quelque chose dans mon code Principal à l'origine de cette?
l'exception est levée, quand je l'ensemble des Parents.
OriginalL'auteur CaTx | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
Meilleur moyen serait d'utiliser
EP.ShowDialog(this)
et de les utiliser plus tardOwner
propriété.Vrai que. Oublier les parents. Utilisez simplement
Owner
.Je vais l'essayer. Je vous remercie.
Et cela a fonctionné! Je vous remercie.
Il a travaillé après le parlement européen.ShowDialog () invoque l'EP forme, et je le fais pendant l'événement Load de EP (enfant): Copied_MySettings = ((Form_Parent).Le propriétaire).MySettings. Cependant, je ne peux pas accéder 'MySettings' dans le formulaire Parent après cet événement. Quelqu'un sait pourquoi?
OriginalL'auteur
Vous avez besoin de la
EP.TopLevel
propriété doit être définie sur false. Il vous permettra de fixer un parent.Poursuite de la lecture.
Dans le cas où vous ne souhaitez accéder à des variables et des contrôles de formulaire à un autre, alors peut-être que vous pouvez l'atteindre par d'autres moyens, non pas par le biais d'une relation Parent.
merci il m'a aidé à montrer formulaire de contrôle dans d'autres forme
Je pense que cela devrait avez été accepté comme la réponse correcte. Il a fait le travail pour moi. Merci 😉
OriginalL'auteur
OK,
apparemment, la façon de le faire est d'appeler
et puis je peux appeler
ou si je définir aVariable dans l'espace de noms de Propriétés, puis
il existe deux façons.
OriginalL'auteur
essayer de cette façon, il aide pour moi. vous devez définir principalform comme isMdicontainer = true dans les propriétés du formulaire
OriginalL'auteur
L'écriture de cette manière, la boîte de dialogue d'affichage sur le centre de l'écran parent.
OriginalL'auteur