Outils pour utilisateurs

Outils du site


lang:csharp:ihm:form

Ceci est une ancienne révision du document !


Récupérer tous les enfants en fonction de leur type

Juste les enfants directs

foreach (var pictureBox in GetControlsOfType<PictureBox>(theForm)) {
}

Tous les enfants et les sous-enfants

public static IEnumerable<T> GetControlsOfType<T>(Control root)
    where T : Control
{
    var t = root as T;
    if (t != null)
        yield return t;
 
    var container = root as ContainerControl;
    if (container != null)
        foreach (Control c in container.Controls)
            foreach (var i in GetControlsOfType<T>(c))
                yield return i;
}

Source, Archive

Ajout d'un composant

dest.Controls.Add(composant)

Mais il ne faut pas oublier d'attribuer le parent à composant, ce qui n'est pas fait automatiquement :

composant.Parent = dest;

Avoir deux (ou plus) PictureBox transparentes se recouvrant

Il faut instaurer une relation de parents / enfants entre les images.

Pour que deux images soient transparentes, l'une doit avoir l'autre en tant que parent. Cette approche n'est pas possible depuis l'IDE Visual Studio (testé avec 2015). Il est donc nécessaire de le faire par programmation : Image2.Controls.Add(Image1);. Il n'est pas nécessaire d'enlever le composant Image1 à son parent.

Pour que trois images soient transparentes, il faut un composant enfant, un composant parent et un composant “grand-parent”.

lang/csharp/ihm/form.1472466942.txt.gz · Dernière modification : 2016/08/29 12:35 de root