Auteur de questions
Comment donner le focus a un textbox d'un groupbox dans l'evenement EnabledChanged de ce groupbox ?

Discussion générale
-
Bonjour,
j'ai un groupbox avec mes textbox de saisie. Pour accéder à une liste des enregistrements, je fais afficher une liste au premier plan dans un autre groupbox. La propriété Enable de mon premier groupbox passe alors à False. Lorsque l'utilisateur sélectionne un enregistrement dans la liste, je fais dispaître la liste et repasse la propriété Enable de mon premier groupbox à True.
J'utilise l’événement EnabledChanged du groupbox pour remplir mes textbox par rapport à l'enregistrement selectionné puis j'essaye de donner le focus à un de ses textbox mais ça n'a aucun effet quand j'appelle textbox.focus dans EnabledChanged du groupbox.
Si quelqu'un pouvait m'aider, je vous remercie d'avance
- Type modifié Ciprian Duduiala jeudi 14 juillet 2011 11:34 attente de feedback
Toutes les réponses
-
Bonjour,
En effet en utilisant la propriété CanFocus du textbox on voit que le focus ne peut pas se faire
Public Class Form1 Private Sub GroupBox1_EnabledChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.EnabledChanged If TextBox2.CanFocus Then TextBox2.Focus() Else MessageBox.Show("le controle ne peut pas recevoir le focus") End If TextBox2.Focus() If GroupBox1.ContainsFocus Then MessageBox.Show("un textbox a le focus") Else MessageBox.Show("aucun textbox n'a le focus") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If GroupBox1.Enabled = True Then GroupBox1.Enabled = False Else GroupBox1.Enabled = True End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GroupBox1.Controls.Add(TextBox1) GroupBox1.Controls.Add(TextBox2) End Sub End Class
fred -
Merci pour ce test Fred.
Est ce qu'il y a un moyen de contourner cette limitation car c'est étrange je test bien que le groupbox.enable=true dans enabledChanged et c'est le cas donc je ne vois pas pourquoi un objet donc le conteneur est enable ne peut recevoir le focus.
-
-
-
Bonjour,
Il faut s’assurer l’instruction GroupBox.Enabled = True est faite avant donner le focus à un TextBox. J’ai teste et ça marche même si vous le faites dans l’évènement GroupBox1_EnabledChanged, mais vous dites que pour vous il ne fonctionne pas. Essayez à modifier l’évènement Button1_Click par :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If GroupBox1.Enabled = True Then
GroupBox.Enabled = True
GroupBox1.Enabled = False
Else
GroupBox1.Enabled = True
GroupBox.Enabled = False
End If
End Sub
mais je doute qu’il va changer la situation.
En cas que cette solution ne résoudre pas votre problème, il faut nous montrer votre code pour reproduire le contexte de votre application. Sinon, il sera difficile vous donner une solution.
Bonne journée,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
-
Le contexte est similaire à celui de l'exemple de Fred75 à la seule différence que le GroupBox1.Enabled = True est appelé dans le OnDoubleClick & le OnKeyDown de la liste et non dans un button1_click
Mais déjà avec l'exemple du bouton présenté par Fred75, j'ai exactement le même problème. Je ne comprend pas trop votre code à modifier dans le button1_click : par groupbox.enabled=true vous modifiez la propriété de la classe et pas de l'objet groubox1 ?? Personnellement j'ai une erreur de référence à un membre non partagé quand je copie/colle votre code tel quel.