Puse el siguiente código en una grilla:
** init event
Local oColumn As Column, oControl
For Each oColumn In This.Columns
For Each oControl In oColumn.Controls
If Pemstatus(oControl,'MouseDown',5)
Bindevent(oControl,'MouseDown',This,'MouseDown')
EndIf
endfor
EndFor
** mousedown event
LPARAMETERS nButton, nShift, nXCoord, nYCoord
Local nWhere, nRelRow, nRelCol,cBackColor,cForeColor,nCol
This.GridHitTest(nXCoord,nYCoord,@nWhere,@nRelRow,@nRelCol)
Do case
Case nWhere = 3 && celda
nCol = this.columncount - Abs(m.nRelCol)
nCol = Iif(nCol=0,1,nCol) && nCol sería 0 si
hubiera solamente una columna en la grid
cBackColor = 'this.column'+Alltrim(Str(nCol))+'.text1.backcolor = '
+Transform(Rgb(255,0,0)) && rojo
cForeColor = 'this.column'+Alltrim(Str(nCol))+'.text1.forecolor = '
+Transform(Rgb(255,255,255)) && blanco
&cBackColor
&cForeColor
Otherwise
endcase
Este código hace que cada vez que se da click en cualquier celda, ésta
se torna roja con letras blancas. Sin el código de arriba, al dar click,
la celda queda "transparente" y no cambia de color.
Sin embargo, si tengo algún código en el evento dblclick del textbox de
la columna, ese código no se dispara.
Es como si el mousedown matara al doubleclick
¿Cómo puedo hacer para que funcionen los dos?
Rafael Copquin