Outils pour utilisateurs

Outils du site


lang:csharp:ihm:form

Bugs

Gestion des touches

TextBox

TableLayoutPanel

Form

PropertyGrid

DataGridView

ProgressBar

ToolTip

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;
}

c# - Get all controls of a specific type - Stack Overflow Archive du 07/01/2011 le 27/04/2020

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”.

c# - How to make picturebox transparent_ - Stack Overflow Archive du 11/11/2013 le 27/04/2020

Réduire le scintillement des UserControl d'une fenêtre

Mettre dans le formulaire (et pas dans les UserControl) :

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
        return cp;
    }
}

Cettte méthode réduit les scintillements pour les UserControl mais peut entraîner d'autres scintillements à la place. A utiliser avec précaution.

c# - How to fix the flickering in User controls - Stack Overflow Archive du 10/04/2010 le 27/04/2020

Permettre à un Panel de faire défiler l'ascenseur avec la molette

Le panel doit avoir le focus.

private void panel1_MouseEnter(object sender, EventArgs e)
{
    panel1.Focus();
}

c# - How can I scroll my panel using my mousewheel_ - Stack Overflow Archive du 21/10/2009 le 27/04/2020

lang/csharp/ihm/form.txt · Dernière modification : 2020/04/27 08:17 de root