Bonjour à tous, je suis sur un problème depuis quelques temps et j'ai besoin d'aide sur le sujet.
Pour faire simple, je suis en train de créer des contrôles que je pourrais utiliser dans mes projets de jeux.
Label, TextBox, Button, etc.
Mes Buttons et mes TextBox peuvent être cliqués (TextBox pour lui donner le focus afin d'écrire dedans) et Button comme un bouton normal.
Voici le code simple
Lorsque je créé un GUI contenant plusieurs AbstractControl, je parcours mes éléments pour savoir si je suis par-dessus ou si je clique sur l'un d'eux par exemple. J'aimerais être capable de faire un foreach sur ma liste d'AbstractControl (ou de ClickableControl) sans nécéssairement connaître les types dérivés (Button dans ce cas). Pour le moment, je dois faire deux boucles foreach qui parcourent ma liste de contrôle (Liste.OfType<Button> et Liste.OfType<TextBox>). Je trouve pas ça très pratique, dans l'éventualité ou je pourrais créer d'autres contrôles cliquables. S'il y avait un moyen de juste faire un foreach sur Liste.OfType<ClickableControl>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public abstract class ClickableControl : AbstractControl { public event EventHandler OnClick; public ClickableControl(SFML.Graphics.Color BackgroundColor) : base(BackgroundColor) { } public void Click() { if (this.OnClick != null) { this.OnClick(this, null); } } } public class Button1 : ClickableControl { }
Est-ce possible?
Merci d'avance.
Partager