Visibilité d'un Bookmark dans un DataGrid

Résolu
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 29 mai 2010 à 10:53
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre 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

2 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
31 mai 2010 à 10:24
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
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
4 juin 2010 à 11:20
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
0
Rejoignez-nous