Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien Bezagu
Salut Twix,
Tout d'abord, j'utilise VS2005 et je ne sais pas si le comportement et la solution que je vais décrire peuvent être transposés pour les versions antérieures.
La raison pour laquelle la couleur de fond n'est pas changée est qu'une form MdiContainer crée automatiquement un control MdiClient qui est docké pour remplir la zone cliente de la form. Bien entendu, sa couleur est SystemColors.AppWorkspace. Lorsque tu changes la couleur de fond de la form, la couleur de fond du control MdiClient n'est pas changée.
Pour contourner ce fontionnement que je trouve un peu bizzare, il faut utiliser le code suivant :
Dim ctl As Control For Each ctl In Me.Controls If TypeOf ctl Is MdiClient Then ctl.BackColor = Color.DarkBlue End If Next
Pour comprendre tout cela, tu peux utiliser l'outil reflector.
J'ai également vu, après une recherche rapide sur google, que les articles suivant traitent du problème et y apportent à peu près la même solution :
"Twix" a écrit dans le message de news: 42e9dbda$0$5649$
bonjour,
j'ai mis une couleur de fond dans ma fenetre MDI principale avec la propriete BackColor mais à l'execution je ne vois pas la couleur.
pourquoi ?? comment resoudre ce probleme ?
merci a tous ce qui m'aiderons
au revoir
Salut Twix,
Tout d'abord, j'utilise VS2005 et je ne sais pas si le comportement et la
solution que je vais décrire peuvent être transposés pour les versions
antérieures.
La raison pour laquelle la couleur de fond n'est pas changée est qu'une form
MdiContainer crée automatiquement un control MdiClient qui est docké pour
remplir la zone cliente de la form. Bien entendu, sa couleur est
SystemColors.AppWorkspace. Lorsque tu changes la couleur de fond de la form,
la couleur de fond du control MdiClient n'est pas changée.
Pour contourner ce fontionnement que je trouve un peu bizzare, il faut
utiliser le code suivant :
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is MdiClient Then
ctl.BackColor = Color.DarkBlue
End If
Next
Pour comprendre tout cela, tu peux utiliser l'outil reflector.
J'ai également vu, après une recherche rapide sur google, que les articles
suivant traitent du problème et y apportent à peu près la même solution :
Tout d'abord, j'utilise VS2005 et je ne sais pas si le comportement et la solution que je vais décrire peuvent être transposés pour les versions antérieures.
La raison pour laquelle la couleur de fond n'est pas changée est qu'une form MdiContainer crée automatiquement un control MdiClient qui est docké pour remplir la zone cliente de la form. Bien entendu, sa couleur est SystemColors.AppWorkspace. Lorsque tu changes la couleur de fond de la form, la couleur de fond du control MdiClient n'est pas changée.
Pour contourner ce fontionnement que je trouve un peu bizzare, il faut utiliser le code suivant :
Dim ctl As Control For Each ctl In Me.Controls If TypeOf ctl Is MdiClient Then ctl.BackColor = Color.DarkBlue End If Next
Pour comprendre tout cela, tu peux utiliser l'outil reflector.
J'ai également vu, après une recherche rapide sur google, que les articles suivant traitent du problème et y apportent à peu près la même solution :