Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Chiamare un oggetto nel form A dal form B
venerdì 10 giugno 2005 - 15.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Miku
Profilo
| Newbie
20
messaggi | Data Invio:
ven 10 giu 2005 - 15:53
Salve a tutti,
non riesco a chiamare un oggetto Griglia che si trova in un altro form. Tale Formeffettua la ricerca in un db e recuperato il dataset deve passarlo alla Griglia.
Come devo fare?
Io ho provato così:
FrmRisultati_Ricerca Frm_Risultati = FrmRisultati_Ricerca;
DataSet qryls = new DataSet();
qrylst = RicercaChiamate("util",""); //Funzione che effettua la query
Frm_Risultati.MiaGriglia.SetDataBinding(qryls, "Risultati"); //assegno i valori alla griglia
Non mi da alcun errore ma non vedo i risultati....
Grazie mille
Miku
**************************************
Vuoi vedere il mio Curriculum Vitae in Formato
Europeo per conoscermi e collaborare insieme in qualche progetto?
vai su www.eurocv.it ed inserisci
il mio Public Code: mycv
**************************************
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 10 giu 2005 - 16:11
Prova con
Frm_Risultati.MiaGriglia.DataSource = myDataSet.Tables["mytable"];
Miku
Profilo
| Newbie
20
messaggi | Data Invio:
ven 10 giu 2005 - 18:12
Niente da fare! Solita storia.
Ma è possibile che sia così difficile assegnare un dataset ad una griglia che si trova in un altro form?
mi dispero.
miku
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
sab 11 giu 2005 - 07:56
Prova con:
form che condivide la datasource del datagrid
public DataGrid.DataSource GridSource
{
get
{
return dataGrid1.DataSource;
}
set
{
dataGrid1.DataSource = value;
}
}
McSxp
Profilo
| Newbie
25
messaggi | Data Invio:
sab 11 giu 2005 - 15:52
Sei sicuro che non sia un problema di Shared? devi assicurarti che l'oggetto che stai chiamando sia istanziato e shared per il form chiamante...
:)
bye McSxp
Miku
Profilo
| Newbie
20
messaggi | Data Invio:
lun 13 giu 2005 - 09:26
Ciao Cteniza,
ho provato come dici tu ma non funziona. Nel secondo form non riesco a vedere la funzione GridSource.
Grazie
Miku
Miku
Profilo
| Newbie
20
messaggi | Data Invio:
lun 13 giu 2005 - 09:27
Ciao McSxp,
come si imposta un oggetto shared di tipo griglia?
Grazie
Miku
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
lun 13 giu 2005 - 10:02
Io ho il sospetto che tu stia ancora cercando di utilizzare le vecchie istruzioni vb6!.
Se dentro un blocco chiamo:
Sub / Function
dim frm As New Form2
frm.Show
End Sub/Function
Al di fuori della sub "frm" (definita come variabile locale) non esiste più
Se sei dentro Form2 e sei richiamato dalla Form1 puoi impostare dei dati sulla Form1 se li hai definiti come "pubblici".
Definire una grid "shared" (e anche public perchè altrimenti non funziona) può essere fatto solo in particolari condizioni (a mio avviso su una datagrid mai).
Miku
Profilo
| Newbie
20
messaggi | Data Invio:
lun 13 giu 2005 - 10:17
Io non riesco ancora a capire come si richiamano gli oggetti di un form da un altro form.
Io non confondo con VB6 la programmazione in C# sono solo confuso visto che sono ancora agli inizi.
Come faccio a far comunicare la griglia del form1 dal form2? Grazie
Miku
McSxp
Profilo
| Newbie
25
messaggi | Data Invio:
lun 13 giu 2005 - 10:27
Puoi provare a creare una property Shared del form.
Questo è in Vb ma credo che se ne possa fare l'equivalente C#
Private Shared frmGlobalForm As Form2
Public Shared Property GlobalForm() As Form2
Get
If frmGlobalForm Is Nothing OrElse frmGlobalForm.IsDisposed Then
frmGlobalForm = New Form2
End If
Return frmGlobalForm
End Get
Set(ByVal Value As Form2)
frmGlobalForm = Value
End Set
End Property
Ad esempio per visualizzare la form dal Form1 dovrai chiamarla con un Form2.GlobalForm.Show(), in questo modo anche i controlli dovrebbero essere espossti shared...
bye
McSxp
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
lun 13 giu 2005 - 10:33
La prima regola è che ogni form è una classe.
Ciascuna classe può avere membri privati e membri pubblici, i membri privati sono accessibili solo all'interno della classe i membri pubblici sono accessibili sia all'interno che all'esterno della classe.
Nell'area di "scope" dell'oggetto se hai due form form1 e form2 e form2 è chiamata dalla form1 i membri di form2 sono visibili all'interno della form1 solo se dichiarati pubblici.
Viceversa se form1 chiama form2 i membri di form1 sono visibili solo se pubblici e sulla form2 esiste un riferimento all'oggetto di tipo "form1" che ha chiamato form2 (scrivere form1.membro non serve a nulla).
Un modificatore dei membri che permette di scrivere (form1.membro) come si faceva con vb6 è "static", il che vuol dire che il membro ha una sola istanza a prescindere da quante volte sia chiamato.
Torna su
Stanze Forum
Elenco Threads
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 !