IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Datagridview sélectionner une cellule et la rendre active [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Par défaut Datagridview sélectionner une cellule et la rendre active
    Bonjour tous le monde ,

    Je fais appel à votre aide car je bloque sur ce problème et malgré mes recherches, je ne trouve pas la solution. Si quelqu'un pouvais me débloquer ce serais sympa.

    J'ai un DataGridView présentant deux colonnes. Le première présente des moyens de contacts (téléphone, mails ...) et est ReadOnly. La deuxième est elle destinée à l'encodage de ces moyens de contacts (le numéro de téléphone, l'adresse email ...). En fait, je voudrais sélectionner une cellule et la rendre active afin de pouvoir y encoder des données. Remarque importante, pour passer d'une cellule d'encodage de mon DataGridView à l'autre j'utilise la touche tabulation pour passer à la cellule suivante.

    Voici mon code actuel:

    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
     
    Private Sub dgvMoyensTelecommunication_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvMoyensTelecommunication.EditingControlShowing
            editingMode = True
    End Sub
     
    Private Sub dgvMoyensTelecommunication_SelectionChanged(sender As Object, e As System.EventArgs) Handles dgvMoyensTelecommunication.SelectionChanged
            Dim r As Integer
            Dim c As Integer
     
            If editingMode Then
                r = dgvMoyensTelecommunication.CurrentCell.RowIndex
                c = dgvMoyensTelecommunication.CurrentCell.ColumnIndex
     
                c += 1
     
                If c = dgvMoyensTelecommunication.ColumnCount Then
                    r += 1
                    c = 2
                End If
     
                editingMode = False
                dgvMoyensTelecommunication.CurrentCell = dgvMoyensTelecommunication(c, r)
     
            End If
        End Sub
    Le code semble marcher et me sélectionne bien la cellule se trouvant en dessous de la première. La ou cela ne va plus, c'est qu'il me sélectionne la cellule mais ne la rend pas active en modification. En fait je constate que c'est la cellule de la première colonne contenant l'intitulé du moyen de communication qui semble être sélectionnée alors que si je fais un test demandant la cellule active, c'est celle destinée à l'encodage qui est apparement active. Par ailleurs c'est bien cette dernière qui en surbrillance mais dans laquelle je ne peux rien encoder !

    Comme une image est parfois plus parlante, voici une illustration de mon DataGridView et de ce qui se produit.

    Nom : Image sans titre.png
Affichages : 1869
Taille : 14,0 Ko

    Quelqu'un peut-il m'aider car cela fais un moment que je bloque la-dessus ?!

    J'espère que je ne suis pas trop confus dans mes explications.

    Merci d'avance.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    essaye .beginedit
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Par défaut
    Bonjour Pol63,

    Déjà merci de t'intéressé à mon problème .

    j'avais déjà essayer, mais cela ne donne rien. Une autre idée qui me permettrais de me débloquer ?

    Juste par acquis de conscience je remets mon code en y mentionnant ta suggestion. Mais je me répète cela ne produit aucun effet.

    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
    Private Sub dgvMoyensTelecommunication_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvMoyensTelecommunication.EditingControlShowing
            editingMode = True
        End Sub
     
        Private Sub dgvMoyensTelecommunication_SelectionChanged(sender As Object, e As System.EventArgs) Handles dgvMoyensTelecommunication.SelectionChanged
            Dim r As Integer
            Dim c As Integer
     
            If editingMode Then
                r = dgvMoyensTelecommunication.CurrentCell.RowIndex
                c = dgvMoyensTelecommunication.CurrentCell.ColumnIndex
     
                c += 1
     
                If c = dgvMoyensTelecommunication.ColumnCount Then
                    r += 1
                    c = 2
                End If
     
                editingMode = False
                dgvMoyensTelecommunication.CurrentCell = dgvMoyensTelecommunication(c, r)
                dgvMoyensTelecommunication.BeginEdit(True)
     
            End If
    End Sub
    Si quelqu'un d'autre à une idée à soumettre qu'il n’hésite pas .

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx

    ca retourne false dans ton cas ?
    (ca nous avancera pas plus mais ca passe le temps ^^)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Par défaut
    Euh. Tu pourrais m'expliquer la démarche STP ? Je te suis pas vraiment là.

    Merci.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sur le lien l'aide explique que beginedit est une fonction, pas une méthode, donc elle retourne une valeur, en l'occurrence un booléen qui dit si c'est ok ou pas (true ou false)
    et ils expliquent qu'il y a plein de raisons pour lesquelles ca peut retourner false

    mais bon comme je disais ca va surement te retourner false et ca ne nous avancera pas à grand chose ...

    [EDIT]
    je viens de tester sur un projet vide et ca marche sur une colonne texte, y compris depuis le selectionchanged
    donc ca vient de comment tu utilises le dgv surement ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sélectionner une cellule d'un TStringgrid
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 10
    Dernier message: 12/02/2010, 20h00
  2. [2.0 DataGridView] comment sélectionner une cellule par le code
    Par juniorAl dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/07/2008, 19h46
  3. Réponses: 3
    Dernier message: 16/10/2007, 16h25
  4. [TStringGrid] Comment sélectionner une cellule ?
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/11/2005, 10h45
  5. [JTable] Sélectionner une cellule
    Par GENERYS dans le forum Composants
    Réponses: 2
    Dernier message: 12/10/2005, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo