L'evento in question (CellKeyDown) vuole un valore di ritorno di tipo
Boolean per capire se tu vuoi gestire autonomamente la pressione dei
tasti oppure vuoi lasciar il comportamento di default. E infatti è
definito come:
CellKeyDown(row as Integer, column as Integer, key as String) As Boolean
In pratica ti basta ritornare un True dopo aver selezionato il campo,
se invece lo lasci così, di default viene ritornato false e avviene la
pressione del tasto freccia in basso che provoca lo spostamento del
cursore a fine riga, rendendo inutile la tua selezione.
In pratica il tuo codice va modificato così:
indexR = row
//freccia in basso
if Asc(key) = 31 then
if indexR = me.ListCount-1 then
indexR = 1
else
indexR = row+1
end if
me.CellType(indexR,column)=me.TypeEditable // sicuro che sia
necessaria questa riga?
me.editCell(indexR,column)
me.activeCell.selStart = 0
me.activeCell.selLength = len(me.activeCell.text)
return true
end if
Massimo Valle
On 24/giu/09, at 11:21, Massimo Lista wrote:
In effetti me.activeCell.selLength dovrebbe funzionare, ma non
va.Anzichè
selezionare il contenuto della cella, posiziona il cursore alla fine
Lo uso in questo contesto:Su CellKeyDown
indexR = row
//freccia in basso
if Asc(key) = 31 then
if indexR = me.ListCount-1 then
indexR = 1
else
indexR = row+1
end if
me.CellType(indexR,column)=me.TypeEditable
me.editCell(indexR,column)
me.activeCell.selStart = 0
me.activeCell.selLength = len(me.activeCell.text)
end if
Il giorno 24 giugno 2009 09.56, Massimo Valle <maxduepuntozero@yahoo.it
> ha
scritto:
On 24/giu/09, at 09:27, Massimo Lista wrote:
Con quale istruzione simulo il doppio click del mouse su una cella
editabile
di una listbox ?
Con il doppio click viene selezionato il contenuto della cella per
cui
digitando, il nuovo valore si sostituisce a quello precedente.
Per ottenere lo stesso risultato via codice ?
me.ActiveCell.SelStart=0
me.ActiveCell..............................
Grazie.
me.activeCell.selStart = 0
me.activeCell.selLength = len(me.activeCell.text)
Massimo Valle
--
Massimo
|