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

Windows Forms Discussion :

[VB.NET] ComboBox/Datagrid enabled mais pas en saisie


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut [VB.NET] ComboBox/Datagrid enabled mais pas en saisie
    Ciao,

    2 questions qui est sont toutes simples mais dont je n'ai pas trouvé la réponse malgré mes recherches :

    - Comment faire pour qu'une ComboBox soit enabled mais qu'on ne puisse rien saisir dedans, c'est à dire uniquement sélectionner l'un de ses éléments ?

    - Même chose pour une datagrid : comment faire qu'on puisse sélectionner une ligne complète uniquement, et non pas cliquer dans un champ de la ligne ?

    Merci de votre aide

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    1) combobox.dorpdownstyle = dropdownlist

    2) DataGrid.ReadOnly = true
    pas de propriete directe pour definir la selection sur la ligne
    tu peux affiner les possibilites si ta source de donnee implement et presente les membres de IBindinglist

  3. #3
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut
    Merci pour la ComboBox : c'est exactement ce que je cherchais (rien à voir avec le Locked de VB6!)
    Concernant la DataGrid, j'ai déjà passé la Datagrid et chacun de ses ColumnStyle en ReadOnly=True mais il est toujours possible de cliquer dans l'une ou l'autre des colonnes, même si la modification est effectivement impossible. Le curseur apparait alors dans la colonne. Peut-on éviter cela ?

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
        Me.DataGrid1.Select(Me.DataGrid1.CurrentRowIndex)
    End Sub

  5. #5
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    j'ai trouve:
    http://www.eggheadcafe.com/ng/microsoft.public.dotnet.framework.windowsforms.controls/post458234.asp

    a tester

    Rajout:
    Ah bin ca fera une seconde methode alors

  6. #6
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut
    Merci pour ces 2 méthodes.
    Je viens de faire un essai avec celle proposée par bidou : la ligne est bien sélectionnée mais le curseur reste positionné dans le champ. Comment s'en débarrasser ?

    Je vais aussi tester l'autre méthode, celle de Piotrek, qui est en C# : je vais essayer de la porter en VB.net et je vous tiens au courant...

  7. #7
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut
    C'est bon : après avoir fait le select, il suffit de donner le focus à un autre contrôle avec une commande du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Btn_Modifier.Focus()
    C'est nickel.

    Pour info, j'ai traduit la solution C# en VB.net mais cette méthode suppose de créer une classe qui dérive de la classe DataGrid --> c'est un peu plus lourd. Je vous donne le code quand même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class MyDataGrid
            Inherits System.Windows.Forms.DataGrid
            Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
                Dim hti As HitTestInfo = HitTest(e.X, e.Y)
                If (hti.Type = DataGrid.HitTestType.Cell) Then
                    Dim eNew As MouseEventArgs = New MouseEventArgs(e.Button, e.Clicks, 2, e.Y, e.Delta)
                    MyBase.OnMouseDown(eNew)
                    Return
                End If
                MyBase.OnMouseDown(e)
            End Sub
        End Class
    Bonne journée,
    C.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/03/2012, 11h34
  2. [C++.Net] Probleme combobox & datagrid
    Par raboin dans le forum VC++ .NET
    Réponses: 16
    Dernier message: 12/04/2006, 16h33
  3. Réponses: 7
    Dernier message: 10/02/2006, 18h00
  4. net send marche, mais pas ping...
    Par rvfranck dans le forum Administration
    Réponses: 7
    Dernier message: 04/02/2006, 22h09
  5. Connection net OK mais pas d'internet accessible. Pourquoi ?
    Par Flo. dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2003, 14h49

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