Visibilité d'un Bookmark dans un DataGrid [Résolu]

Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
- 29 mai 2010 à 10:53 - Dernière réponse :
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
- 4 juin 2010 à 11:20
Bonjour,

Dans une Form, j'ai un DataGrid à l'intérieur duquel je peux me déplacer soit à l'aide de la souris, soit à l'aide du texte saisi dans une textbox à côté.

Dans ce dernier cas je précise que je fais simplement un Find sur le recordset sous-jacent peuplant le DataGrid.

Dans les 2 cas, c'est ensuite l'évènement RowColChange du DataGrid qui prend le relais et je veux simplement mettre en surbrillance l'enregistrement correspondant. Or quand le changement de ligne se produit par un clic de souris, aucune surbrillance n'apparait (mais le recordset ET le DataGrid sont bien positionnés sur cette nouvelle ligne, simplement cela ne se voit pas). Par contre si je saisis une ou plusieurs lettres dans mon textbox tout apparait nickel.

Ci-dessous les propriétés de mon DataGrid:
      
Begin MSDataGridLib.DataGrid DGTowns 
         Height          =   4635
         Left            =   120
         TabIndex        =   7
         Top             =   480
         Width           =   5055
         _ExtentX        =   8916
         _ExtentY        =   8176
         _Version        =   393216
         AllowUpdate     =   0   'False
         BackColor       =   16777215
         ColumnHeaders   =   0   'False
         ForeColor       =   0
         HeadLines       =   0
         RowHeight       =   15
         RowDividerStyle =   5
         FormatLocked    =   -1  'True
         BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
            Name            =   "MS Sans Serif"
            Size            =   8.25
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
            Name            =   "MS Sans Serif"
            Size            =   8.25
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ColumnCount     =   3
         BeginProperty Column00 
            DataField       =   "TOWN_NAME"
            Caption         =   "Ville"
            BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
               Type            =   0
               Format          =   ""
               HaveTrueFalseNull=   0
               FirstDayOfWeek  =   0
               FirstWeekOfYear =   0
               LCID            =   1036
               SubFormatType   =   0
            EndProperty
         EndProperty
         BeginProperty Column01 
            DataField       =   "ZIP_LONG"
            Caption         =   "Entité"
            BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
               Type            =   0
               Format          =   ""
               HaveTrueFalseNull=   0
               FirstDayOfWeek  =   0
               FirstWeekOfYear =   0
               LCID            =   1036
               SubFormatType   =   0
            EndProperty
         EndProperty
         BeginProperty Column02 
            DataField       =   "FLAG_NAME"
            Caption         =   "Pays"
            BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
               Type            =   0
               Format          =   ""
               HaveTrueFalseNull=   0
               FirstDayOfWeek  =   0
               FirstWeekOfYear =   0
               LCID            =   1036
               SubFormatType   =   0
            EndProperty
         EndProperty
         SplitCount      =   1
         BeginProperty Split0 
            MarqueeStyle    =   3
            RecordSelectors =   0   'False
            BeginProperty Column00 
               DividerStyle    =   5
               ColumnWidth     =   1604.976
            EndProperty
            BeginProperty Column01 
               DividerStyle    =   5
               ColumnWidth     =   1604.976
            EndProperty
            BeginProperty Column02 
               DividerStyle    =   5
               ColumnWidth     =   1604.976
            EndProperty
         EndProperty
      End


Et là le code dans l'évènement RowColChange
Private Sub DGTowns_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
   On Error Resume Next
   
   Call SQL_RemoveAllBookmarks(DGTowns.SelBookmarks)
   DGTowns.SelBookmarks.Add oWorld.BH_GetWorldTowns.Bookmark
   lblTownOfWorld.Caption = oWorld.BH_GetWorldTowns.Fields("WORLD_TOWNS").Value
End Sub


SQL_RemoveAllBookmarks est une fonction maison chargé de me supprimer tous les bookmarks pré-existants.
oWorld.BH_GetWorldTowns est une méthode dans une classe du même projet me renvoyant le Recordset.

VB6 + SP6 + ADO 2.8, le datagrid est peuplé directement par le code (VB + SQL)

Calade
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
31 mai 2010 à 10:24
3
Merci
Bonjour,

Si cela peut aider, si je fais un double clic sur la ligne courante de la DataGrid celle-ci apparait brièvement en surbrillance (comme un effet de flash en fait).

Mais cela ne résout en rien mon problème.


Calade

Merci Calade 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Calade
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
4 juin 2010 à 11:20
0
Merci
Bonjour,

En fait cela ne peut pas être fait par le volet des propriétés, il faut le faire obligatoirement par le code comme ceci:

DataGrid.MarqueeStyle = dbgHighlightRow + dbgHighlightCell


Calade
Commenter la réponse de Calade

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.