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] Erreur OnMouseUp sur Datagrid


Sujet :

Windows Forms

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 73
    Points : 218
    Points
    218
    Par défaut [VB.NET] Erreur OnMouseUp sur Datagrid
    J'ai un problème que je n'arrive pas à résoudre. Je vous explique, c'est très simple :

    J'ai une classe hérité de DataGrid qui me sélectionne la ligne automatique lors d'un clique (évènement OnMouseUp).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class DataGrid2
        Inherits DataGrid
     
        Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
            Dim hti As DataGrid.HitTestInfo = MyBase.HitTest(e.X, e.Y)
            If hti.Type = DataGrid.HitTestType.Cell Then
                MyBase.Select(hti.Row)
            End If
        End Sub
    End Class
    Ensuite j'ai une Form où il y a mon DataGrid2 :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Public Class Form1
        Inherits System.Windows.Forms.Form
     
    #Region " Code généré par le Concepteur Windows Form "
     
        Public Sub New()
            MyBase.New()
     
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
     
        End Sub
     
        'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If Not (components Is Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub
     
        'Requis par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer
     
        'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
        'Ne la modifiez pas en utilisant l'éditeur de code.
        Friend WithEvents dg As DataGrid2
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            Me.dg = New DataGrid2
            CType(Me.dg, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'dg
            '
            Me.dg.DataMember = ""
            Me.dg.HeaderForeColor = System.Drawing.SystemColors.ControlText
            Me.dg.Location = New System.Drawing.Point(8, 16)
            Me.dg.Name = "dg"
            Me.dg.Size = New System.Drawing.Size(272, 192)
            Me.dg.TabIndex = 0
            '
            'Form1
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(292, 266)
            Me.Controls.Add(Me.dg)
            Me.Name = "Form1"
            Me.Text = "Form1"
            CType(Me.dg, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
     
        End Sub
     
    #End Region
     
        Dim DS As New DataSet
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim dt As New DataTable
            dt.TableName = "Exemple"
            dt.Columns.Add(New DataColumn("Nom", GetType(String)))
            dt.Columns.Add(New DataColumn("Prenom", GetType(String)))
            dt.Columns.Add(New DataColumn("Paye", GetType(Single)))
            dt.Rows.Add(New Object() {"Bilou", "Gates", "12250,80"})
            dt.Rows.Add(New Object() {"Cassin", "René", "2212,50"})
            dt.Rows.Add(New Object() {"Dassin", "Jo", "22,50"})
            dt.Rows.Add(New Object() {"Jordan", "Yohan", "564,50"})
            DS.Tables.Add(dt)
            Me.dg.DataSource = Me.DS.Tables("Exemple")
        End Sub
    End Class
    La sélection de la ligne se fait très bien mais l'erreur se situe lorsque je veux redimensionner une ligne ou une colonne. Après un clique, le curseur reste avec la double flèche et je ne peux plus déplacer la souris en dehors d'une zone de l'ordre de la grandeur du DataGrid.

    Je n'arrives à en sortir qu'en faisant Alt-F4 ou Ctrl-Alt-Suppr car je n'arrive pas à atteindre la croix pour fermer la fenêtre !

    Note : J'ai VS.NET 2003.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 73
    Points : 218
    Points
    218
    Par défaut
    Avez-vous le même problème que moi si vous copiez-coller le code ci-dessus ??

    Merci.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 73
    Points : 218
    Points
    218
    Par défaut
    Ok, j'ai trouvé tout seul :

    Il fallait rajouter MyBase.OnMouseUp(e) comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
            MyBase.OnMouseUp(e)
            Dim hti As DataGrid.HitTestInfo = MyBase.HitTest(e.X, e.Y)
            If hti.Type = DataGrid.HitTestType.Cell Then
                MyBase.Select(hti.Row)
            End If
        End Sub

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

Discussions similaires

  1. [VB.NET] Erreur sur une page
    Par Azephel dans le forum ASP.NET
    Réponses: 8
    Dernier message: 13/04/2007, 09h01
  2. [VB.NET] erreur sur msgbox
    Par malhivertman1 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 08/09/2006, 13h35
  3. [VB.Net] Pourquoi ai-je une Erreur SQL sur un update ?
    Par ndsaerith dans le forum Accès aux données
    Réponses: 3
    Dernier message: 03/08/2006, 11h32
  4. [VB.NET] Problème de tri sur Datagrid/gridview multilingue
    Par crimsonPhantom dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/03/2006, 22h41
  5. [VB.NET] Erreur sur la creation dynamique d'une texbox
    Par headcooper dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/07/2004, 19h34

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