Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
ComboBox In Grid
Message
De
26/12/2001 10:56:18
 
 
À
05/10/2001 07:02:32
Lakhani Anil
Lakhani Software Solutions
Mumbai, Inde
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Divers
Thread ID:
00564668
Message ID:
00598190
Vues:
19
Hello Lakhani.

>> I am using combobox in Grid, but I wants that when user press up/down arrow, Combobox's value shouldn't be changed. Instead it should navigate in Grid for next/previous record. <<

Add a property to your combo called lDroppedDown. Set it to False in the click() method and to true in the DropDown(). This code in the KeyPress:
IF This.HandleKey( nKeyCode )
  NODEFAULT
ENDIF
This code in HandleKey():
LPARAMETERS nKeyCode
LOCAL lnMaxRows, llRetVal

WITH This
  *** If escape or enter pressed, the list is not dropped down anymore
  IF nKeyCode = 27 OR nKeyCode = 13		    
    .lDroppedDown = .F.
  ENDIF
  *** If the list is not dropped down, traverse the grid with cursor keys
  IF !.lDroppedDown
   WITH .Parent.Parent
     *** Calculate the maximum number of rows in the visible portion of the grid
     lnMaxRows = INT( ( .Height - .HeaderHeight - ;
		  IIF( INLIST( .ScrollBars, 1, 3 ), SYSMETRIC( 8 ), 0 ) ) / .RowHeight )
     *** Move up a row in the grid
     IF nKeyCode = 5 THEN					
       *** If we are sitting on the top row in the visible portion of the grid,
       *** Scroll the grid up a row in case there is a previous record 
       IF .RelativeRow = 1
         .DoScroll( 0 )		            
       ENDIF
       .ActivateCell( .RelativeRow - 1, .RelativeColumn )
       *** Let KeyPress know we have handled the keystroke
       llRetVal = .T.
     ELSE
       *** If we are sitting on the bottom row in the visible portion of the grid,
       *** Scroll the grid down a row in case there is a next record	 
       IF nKeyCode = 24 THEN				
         IF .RelativeRow >= lnMaxRows
            .DoScroll( 1 )
 	 ENDIF
         .ActivateCell( .RelativeRow + 1, .RelativeColumn )
	 llRetVal = .T.
       ENDIF
     ENDIF
   ENDWITH
  ENDIF
ENDWITH

RETURN llRetVal	
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform