J'ai un écran divisé par quelques conteneurs fractionnés. L'un d'eux contient des rectangles dont j'ai fait les composants utilisateur, ces "rectangles" représentent des lits d'hôpitaux. Ce que je voulais faire, c'est donner aux utilisateurs la possibilité de basculer entre cette "vue des composants utilisateur" et une "vue DataGrid". J'ai donc créé un panneau pnlPatients que je donne la même taille que le splitcontainer avec les composants de l'utilisateur. Lorsque l'utilisateur sélectionne "Modifier vue", le programme est supposé basculer entre les deux dispositions.C# masquage et affichage d'un panneau au-dessus d'un conteneur fractionné
code: Tentative 1:
if (pnlPatients.Visible)
pnlPatients.Hide();
else
{
pnlPatients.Show();
pnlPatients.BringToFront();
}
Tentative 2:
pnlPatients.Visible = !pnlPatients.Visible;
pnlPatients.Invalidate();
La chose étrange est que les deux tentatives fonctionnent comme ceci:
L'utilisateur voit d'abord le « composant utilisateur vue". S'il basculait la vue, il afficherait correctement le panneau au-dessus de la vue précédente. S'il voulait basculer à nouveau, alors le panneau serait correctement caché. S'il souhaite de nouveau basculer la vue, le panneau ne sera pas affiché. À FAIRE: lors du débogage, la propriété visible du panneau est correctement définie sur TRUE ou FALSE. Mais pour une raison seulement la première fois qu'il est mis à VRAI visible le panneau peut être vu.
Est-ce que quelqu'un a une idée?
Meilleures salutations
Edit: J'ai aussi essayé cela, mais à aucun succès:
pnlPatients.Visible = !pnlPatients.Visible;
if (pnlPatients.Visible)
{
pnlPatients.BringToFront();
}
else
{
pnlPatients.SendToBack();
}
Et quel est le parent des deux panneaux? –
Le formulaire Windows de base est le parent. – Starceaker