PDA

Visualizza la versione completa : [VB] Datagrid


serena
23-04-2002, 12:58
Un'altra domanda sul datagrid , ho provato a cercare, ma non ho trovato niente che mi potesse aiutare :

In un datagrid collegato ad un ADO recordset, come faccio a sapere qual è il "nome" della colonna attiva ?

Mi sono spiegata?
Grazie

darkblOOd
23-04-2002, 17:22
:dottò:

Che vuol dire?
:confused:

Non ti ho capita...:)

serena
23-04-2002, 17:53
:D
ben ritrovato darkblood

Ho un datagrid e l'utente si posiziona su di una cella, io devo assegnare ad una variabile il "nome" della colonna (campo) della cella selezionata...
qual'è la proprietà che mi restituisce il nome? io non l'ho trovata...

darkblOOd
23-04-2002, 18:25
:D

Allora avevo capito bene ! SPERAVO di non aver capito!

Questo è un controllo a dir poco indegno (il datagrid).

Devi prima posizionarti sulla riga che ti interessa e poi tirare fuori il valore.

con questo codice, ogni volta che clicchi sulla griglia col tasto sx del mouse (button=1) indichi al prog che stai cliccando su una riga valida (se rowcontaining(y) ed ..(x) sono diversi da -1 [che vuol dire fuori griglia]):
(nb: Riga è una variabile creata da te, può essere boolean o byte)


Private Sub dgDati_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And dgDati.RowContaining(Y) <> -1 And dgDati.ColContaining(X) <> -1 Then
Riga = 1
Else
Riga = 0
End If
End Sub


Poi, con questo ti tiri fuori il valore della cella della riga sulla quale fai doppio click (:rolleyes: che linguaggio incasinato che uso a volte):


Private Sub DataGrid_dblClick()
If Riga = 1 Then
DataGrid.SelBookmarks.Add DataGrid.Bookmark
Valore = DataGrid.Columns(TuaColonna).Value
end if
end sub


Con questo codice dovresti ottenere anche l'effetto di evidenziazione della riga sulla quale hai cliccato.

Se fai variare il valore di TuaColonna, otterrai il valore contenuto nella cella della rispettiva colonna indicata (TuoValore).

Cioè se scrivi:
Valore = DataGrid.Columns(0).Value
otterrai il valore scritto nella prima cella della riga su cui hai cliccato.

Si lo so, la spiegazione è stata penosa, se ti ho confusa dimmelo, cercherò di spiegartelo in un italiano + corretto.

:gren:

serena
24-04-2002, 09:29
ehm ehm....
il mio problema è variare "TuaColonna"...
non picchiarmi Darkblood...
quando l'utente è sul grid come faccio a sapere dov'è esattamente?

Cmq il codice che mi hai postato mi è molto utile, Grazie!
:ciauz:

darkblOOd
24-04-2002, 09:37
prova ad analizzare RowContaining(x) e RowContaining(Y) del DataGrid, se non mi ricordo male dovrebbero indicarti le coordinate della cella sulla quale ti sei posizionata.

Adesso vedo se trovo qualche modo e magari ti posto qualcosa di + concreto.

Ciao

darkblOOd
24-04-2002, 09:51
niente di + semplice:



Private Sub DataGrid_dblClick()
If Riga = 1 Then
DataGrid.SelBookmarks.Add DataGrid.Bookmark
Valore = DataGrid.text
end if
end sub


Con questo codice metti in VALORE il testo contenuto nella cella sulla quale fai click.

:ciauz:

serena
24-04-2002, 11:42
Grassssssssssssie, non ho ancora provato, ma sicuramente mi funzionerà!!!

(oggi sono ottimista!)

:p

gecoss
13-06-2002, 19:36
Ho seguito con attenzione il vostro questionare, siccome da poco ho iniziato a programmare in vb, potrei sapere come posso popolare un datagrid??

Questo script è il mio script
Set rs = conn.Execute(stringa select..., , adCmdText)
Set grdData.DataSource = rs

Invece questo è l'errore
Impossibile assegare segnalibri al gruppo di righe

Grazie

Loading