[EDIT]
-- Abandonné --
Finalement, j'utilise un TextBox, et j'ai modifié la façon dont je contrôlait le focus de mes UserControl.
[/EDIT]
Bonjour,
Je suis en train de faire un UserControl qui contient différents éléments, donc un Label.
Je veux que lorsque le label prends le focus (et non seulement lorsqu'on clique dessus -le focus peut se donner avec TAB par exemple -), je fasse un traitement, et qu'il envoie le focus au UserControl.
Voici mon code :
Si je tente de décommenter la partie en commentaires, alors j'ai une erreur comme quoi Label.CanFocus est readonly et ne peut être modifié.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 using System; using System.Drawing; using System.Windows.Forms; namespace Planning.Controls { public partial class ucPlanningEntry : UserControl { private Color StandardColor = Color.Yellow; private Color FocusColor = Color.Orange; public Control ActuallyHasFocus = null; public ucPlanningEntry(string Text) { InitializeComponent(); BackColor = StandardColor; label1.Text = Text; //label1.CanFocus = true; //label1.GotFocus += new EventHandler(label1_GotFocus); label1.Click += new EventHandler(label1_GotFocus); } protected override void OnGotFocus(EventArgs e) { base.OnGotFocus(e); BackColor = FocusColor; } protected override void OnLostFocus(EventArgs e) { base.OnLostFocus(e); BackColor = StandardColor; } private void label1_GotFocus(object sender, EventArgs e) { ucPlanningEntry parent = ((sender as Label).Parent as ucPlanningEntry); parent.ActuallyHasFocus = this; parent.Focus(); } } }
Je ne peux donc pas utiliser l'event GotFocus.
Pourtant, je veux pouvoir donner le focus à cet élément (notamment pour pouvoir le rendre modifiable lors de l'appui sur F2).
Pour des raisons d'ergonomie, je peux pouvoir lui donner le focus non seulement par souris, mais aussi par le clavier, donc je ne peux pas me contenter de ma verrue avec l'event Click...
Partager