microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
salve ho creato in un form delle variabili di tipo struct... voglio utilizzare queste variabili anche in altri form.
come faccio a rendere accessibili queste variabili a più form?
|
|
carant (Normal User)
Pro
Messaggi: 69
Iscritto: 08/11/2009
|
dichiarale all'inizio con public credo...
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
ho provato ma non basta
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Accedere ai form tramite le istanze predefinite (My.Forms) o dichiarare quelle variabili in un modulo, che è accessibile da qualsiasi form.
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
Postato originariamente da Il Totem:
Accedere ai form tramite le istanze predefinite (My.Forms) o dichiarare quelle variabili in un modulo, che è accessibile da qualsiasi form. |
per rendere il modulo accessibile a tutti i form mi basta mettere public? |
|
carant (Normal User)
Pro
Messaggi: 69
Iscritto: 08/11/2009
|
penso di si
Ultima modifica effettuata da carant il 19/12/2009 alle 21:36 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Un modulo è sempre accessibile a tutti i forms; questo perchè:
- Non può essere dichiarato Private a meno che non sia nidificato;
- Di default è Friend, e quindi accessibile a tutti i componenti dell'applicazione.
Puoi comunque usare Public per renderne più chiaro lo scopo.
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
Postato originariamente da Il Totem:
Un modulo è sempre accessibile a tutti i forms; questo perchè:
- Non può essere dichiarato Private a meno che non sia nidificato;
- Di default è Friend, e quindi accessibile a tutti i componenti dell'applicazione.
Puoi comunque usare Public per renderne più chiaro lo scopo. |
nel form1 ho la seguente procedura:
Codice sorgente - presumibilmente C# / VB.NET |
public void carico()
{
...sottoprogramma...
}
|
nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET |
public secondoform()
{
InitializeComponent();
carico();
}
|
ma mi dice che il nome "carico" non esiste nel contesto corrente |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Postato originariamente da microprocessore:
Postato originariamente da Il Totem:
Un modulo è sempre accessibile a tutti i forms; questo perchè:
- Non può essere dichiarato Private a meno che non sia nidificato;
- Di default è Friend, e quindi accessibile a tutti i componenti dell'applicazione.
Puoi comunque usare Public per renderne più chiaro lo scopo. |
nel form1 ho la seguente procedura:
Codice sorgente - presumibilmente C# / VB.NET |
public void carico()
{
...sottoprogramma...
}
|
nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET |
public secondoform()
{
InitializeComponent();
carico();
}
|
ma mi dice che il nome "carico" non esiste nel contesto corrente |
Per prima cosa, hai ignorato quello che abbiamo detto fin'ora, dato che non ci sono moduli nel tuo sorgente. In C#, comunque, sono classi statiche (static class).
Poi, ti sei risposto da solo. Infatti, hai scritto che nel form1 hai la procedura carico(), e la richiami dal form2. Ora, che tu possa pensare che il compilatore "sappia" dove sta la definizione di carico() è certamente una sovrastima della potenza dell'elaboratore, che, seppur veloce, è molto stupido. E' come se cercassi nell'elenco degli studenti di una classe uno studente che sta in un'altra classe: ovviamente non lo troverai. E dato che in C# non esistono le istanze di default dei form e il namespace My, l'unica soluzione è dichiarare variabili e/o metodi in un modulo.
Codice sorgente - presumibilmente C++ |
static class Generale { public void carico() {} }
|
|
|