Allora, ovviamente l'evento hai ragione tu... è cellkeydown (keydown è
riferito all'evento di pressione di un tasto su tutta la listbox).
Io comunque mi sono fatto un piccolo metodo che chiamo dall'evento
cellkeydown, al quale passo quale riga e quale colonna (in pratica
quale cella) intendo rendere editabile:
Sub SelezionaUltimaRIgaInserita(riga As integer, colonna As integer)
me.editCell(riga,colonna)
me.ActiveCell.SelStart=0
me.ActiveCell.SelLength=len(me.Cell(riga,colonna))
End Sub
....Sono poi 3 righe :)
Spero di essere stato utile!
Il giorno 15/giu/09, alle ore 16:44, Massimo Lista ha scritto:
Ho seguito il tuo consiglio.
Su evento KeyDown
if key=chr(13) then
Me.CellType(row,1)=Listbox1.TypeEditable
Me.EditCell(row, 1)
return True
end if
---ma su row mi segnala "Questo metodo o proprietà non esiste"
Invece su evento CellKeyDown ho inserito:
if key=chr(9) then
Me.CellType(row,1)=Listbox1.TypeEditable
Me.EditCell(row,1)
return True
end if
e row viene accettato, con la freccia si ottiene lo scorrimento
delle righe
ma il campo della colonna 1 non viene reso editabile (come invece
avviene
con CellClick.
Perchè ?
Il giorno 15 giugno 2009 11.24, Sergio Tamborini <ml_sergio@system-i.it
> ha
scritto:
Nell'evento keydown metti chr(13) che è l'invio (puoi anche
valutare il
chr(12) che è l'invio del tastierino numerico) e dici di editare la
cella
sotto... puoi anche valutare il key chr(9) che è il tab per
spostarti alla
cella a destra :) con qualche if puoi anche fare in modo che se
arrivi
all'ultima coolonna vada alla prima cella della riga sotto. E'
fattibilissimo, ce l'ho fatta io :)
Il giorno 15/giu/09, alle ore 11:13, Massimo Lista ha scritto:
Grazie per il suggerimento.In questo modo riesco a editare i campi
di una
colonna:
On CellClick
Me.CellType(Val(str(row)),1)=Listbox1.TypeEditable
Me.EditCell(Val(str(row)),1)
però non riesco a gestire l'evento su invio, facendo in modo tale
che il
focus vada sulla stessa colonna al rigo successivo rendendola
editabile.
Devo necessariamente posizionarmi con il mouse al rigo successivo,
la qual
cosa sarebbe molto scomodo in caso di inserimento di molti dati
(quali ad
esempio i dati di un bilancio).
Il giorno 13 giugno 2009 9.30, Massimo Valle <maxduepuntozero@yahoo.it
>
ha
scritto:
Contrariamente a quanto sembri, la listbox funge anche da
contenitore.
Utilizzi il metodo Listbox.cell(row, column) sia per recuperare
che per
assegnare un valore. Se devi farlo inserire direttamente
all'utente puoi
rendere editabile la cella e di conseguenza questa si comporta
come un
editfield.
Massimo Valle
On 13/giu/09, at 08:36, Massimo Lista wrote:
Ma è possibile inserire direttamente un valore in una cella di una
listbox
?Io
ho capito che la listbox è solo un visualizzatore di dati.
Non riesco ad inserire alcun dato direttamente in una listbox.
Per modificare un campo di una listbox devo trasferire il valore
di quel
campo in un editfield, modificarlo e ripopolare la listbox.
A me invece serve inserire direttamente il valore nel campo della
listbox
(tipo griglia di un file excel).
E' possibile ?
Esiste un controllo ad hoc ?
Il plugin DataGrid può fungere allo scopo ?
Il giorno 12 giugno 2009 21.12, Ivano Monti
<ivanomonti@libero.it> ha
scritto:
che io sappia no, ma puoi usare una listbox cmq, legata ad un
database o
un
recordset credo che il limite sia nelle colonne, se non erro 64
colonne
come
max, ma non vorrei dire una scemenza, le maschere viewer di una
query
che
in
realbasic non esistono se non con la listbox.
Poi puoi fare scatenare una serie di modifica e salva a secondo
di come
vuoi muoverti nelle celle della stessa, se posso dare un
contributo più
che
volentieri.
Ivano Monti
Developer for Mac and Windows
Email: ivanomonti @ libero.it
Url: http://www.ivanomonti.eu
Skype: ivanomonti
AIM: ivanomonti
iChat: ivanomonti
Mobile Phone: +39-392-9824007
Phone: +39 02 36648804
Google Map 45.62224,9.107407
Il giorno 12/giu/09, alle ore 19:45, Massimo Lista ha scritto:
Ho l'esigenza di un controllo che si presenti come un
editfield , ma
che
sia
anche un contenitore di dati.
Mi spiego meglio:
Mi sembra di capire che listbox e editfield sono solo dei
visualizzatori
di
dati, a me serve invece un controllo
collegato ad un database che mi consenta di inserire dei
valori in un
campo
(tipo foglio di Excell)
In Microsoft Access ci sono le maschere con visualizzazione
continua.
In RealBasic ?
--
Massimo
--
Massimo
------
Sergio Tamborini
Brescia
http://www.system-i.it
--
Massimo
------
Sergio Tamborini
Brescia
http://www.system-i.it
|