web-dev-qa-db-fra.com

Définir le focus sur un contrôle de zone de texte

Si je veux définir le focus sur une zone de texte lorsque le formulaire est ouvert pour la première fois, au moment du design, je peux définir la propriété tabOrder sur 0 et m'assurer qu'aucun autre contrôle de formulaire n'a un tabOrder de 0.

Si je veux obtenir le même résultat au moment de l'exécution en utilisant du code, comment dois-je procéder?
Existe-t-il des alternatives à l’utilisation de tabOrder?
Je suppose que tout code d’exécution sera dans le constructeur de la fiche ou son gestionnaire d’événements onload?


MODIFIER
.__ En d'autres termes, j'aimerais pouvoir taper directement dans la zone de texte dès que le formulaire apparaît sans avoir à le tabuler ou à le sélectionner manuellement.

9
whytheq

Comme vous souhaitez le définir lors du chargement du formulaire, vous devez d'abord afficher le formulaire .Show () avant d'appeler la méthode .Focus () Le formulaire ne peut pas être actif dans l'événement Load tant que vous n'avez pas affiché le formulaire.

Private Sub RibbonForm1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Me.Show()
    TextBox1.Select()
End Sub
32
Robert Beaubien

Je pense que ce que vous cherchez, c'est:

textBox1.Select();

dans le constructeur. (Ceci est en C #. Peut-être que dans VB ce serait pareil mais sans le point-virgule.)

De http://msdn.Microsoft.com/en-us/library/system.windows.forms.control.focus.aspx :

Focus est une méthode de bas niveau destinée principalement au contrôle personnalisé auteurs. Au lieu de cela, les programmeurs d'applications doivent utiliser la méthode Select ou la propriété ActiveControl pour les contrôles enfants, ou l'activer méthode pour les formulaires.

12
ispiro
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    TextBox1.Select()
End Sub
8
dbasnett

Utilisation de la méthode Focus 

  Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       yourControl.Focus()
    End Sub
4
Bogdan M.

Assez facile :

Pour le contrôle de tabulation, vous devez gérer l'événement _SelectedIndexChanged :

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) _
  Handles TabControl1.SelectedIndexChanged

If TabControl1.SelectedTab.Name = "TabPage1" Then
    TextBox2.Focus()
End If
If TabControl1.SelectedTab.Name = "TabPage2" Then
    TextBox4.Focus()
End If
2
Anil

Pour définir le focus,

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox1.Focus()
End Sub

Définir le TabIndex par

Me.TextBox1.TabIndex = 0
1

créer une zone de texte:

 <TextBox Name="tb">
 ..hello..
</TextBox>

focus () ---> il est utilisé pour définir le focus d'entrée sur le contrôle textbox

tb.focus()
0
Laxmi