[VS2005] Doppio click su elemento Form

martedì 24 giugno 2008 - 11.21

gdlcore Profilo | Junior Member

Ciao a tutti. Ho caricato il file Northwind nel mio form.
Ora vorrei che al doppio click su un elemento della tabella mi si apra un altro form..come si fa??
Aiutatemi per favore!Grazie a tutti..

gabriel81 Profilo | Junior Member

Per tabella intendi il datagrid?

Se si devi andare nel codice e selezionare il datagrid come controllo nella combo di sinistra e l'evento "MouseDoubleClick" nella combo di destra.
Visual studio ti creerà una sub privata tipo:

Private Sub DataGrid_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid.MouseDoubleClick

End Sub


all'interno della quale potra metterci il codice che vuoi

gdlcore Profilo | Junior Member

Ok grazie mille!! Però non voglio che si possono modificare gli elementi..
Adesso il mio problema è un altro..io vorrei che se io faccio doppio clic su un elemento mi faccia una selezione della riga intera..magari per esportarla su un file di testo..
Si riuscirebbe? Aspetto tua risposta..

gabriel81 Profilo | Junior Member

Quello che puoi fare è ottenere i valori delle celle della riga corrente tipo

Dim var1 as string
Dim var2 as string

var1 = GRIGLIA.CurrentRow.Cells("nome_colonna_1").Value.ToString()
var2 = GRIGLIA.CurrentRow.Cells("nome_colonna_2").Value.ToString()

A questo punto hai i valori delle 2 celle in memoria e ci fai quello che vuoi!

gdlcore Profilo | Junior Member

Non sono riuscito a farlo..mi dice :
"Impossibile trovare la colonna denominata idcliente.
Nome parametro: columnName"
IDCliente sarebbe una colonna dell'mdb, perchè sto facendo delle prove col Northwind..
Il comando che ho scritto è questo:
Private Sub ClientiDataGridView_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ClientiDataGridView.MouseDoubleClick
Dim var1 As String
Dim var2 As String

var1 = ClientiDataGridView.CurrentRow.Cells("idcliente").Value.ToString()
var2 = ClientiDataGridView.CurrentRow.Cells("nomesocietà").Value.ToString()

MessageBox.Show(var1) //per visualizzare la riga in una messagebox

End Sub

Cos'è che nn va??Grazie dell'aiuto..

gabriel81 Profilo | Junior Member

il parametro che passi a cells (nel tuo caso hai messo "idcliente") deve essere il nome della colonna del datagrid.
Ogni colonna nel datagrid ha un suo nome ed una sua etichetta. Infatti se clicchi sulla freccetta in alto a destra della griglia e scegli modifica colonne
vedrai la descrizione di ciascuna colonna.
In alternativa puoi passargli l'indice della colonna anzichè il nome. Mi sembra che parte a contare da 0 quindi la prima colonna ha indice 0 la seconda 1 ecc ecc

Quindi il codice giusto è:
Dim var 1 as string
var1 = ClientiDataGridView.CurrentRow.Cells("NOME_DELLA_COLONNA_DEL_DATAGRID" oppure INDICE_SENZA_VIRGOLETTE).Value.ToString()

inoltre il box inoltre si richiama così:
MsgBox(var1)
End Sub



fammi sapere

gdlcore Profilo | Junior Member

OK perfetto ho messo i numeri delle colonne e funziona!!
Grazie mille, adesso cerco di andare avanti da solo..ti ho disturbato fin troppo.
Comunque se dovessi avere ancora qualche dubbio ti scrivo qui? Grazie ancora!

gabriel81 Profilo | Junior Member

No, credo sia più corretto aprire un nuovo thread, in base alle regole del forum.
Comunque io cerco sempre di rispondere se conosco la risposta.

good coding
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5