Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [c#] variabili da form a form
Forum - C# / VB.NET - [c#] variabili da form a form

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 11:12
Sabato, 12/12/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?

PM Quote
Avatar
carant (Normal User)
Pro


Messaggi: 69
Iscritto: 08/11/2009

Segnala al moderatore
Postato alle 20:19
Domenica, 13/12/2009
dichiarale all'inizio con public credo...


Antonio
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 20:27
Domenica, 13/12/2009
ho provato ma non basta

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:59
Domenica, 13/12/2009
Accedere ai form tramite le istanze predefinite (My.Forms) o dichiarare quelle variabili in un modulo, che è accessibile da qualsiasi form.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 16:20
Sabato, 19/12/2009
Testo quotato

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?

PM Quote
Avatar
carant (Normal User)
Pro


Messaggi: 69
Iscritto: 08/11/2009

Segnala al moderatore
Postato alle 21:35
Sabato, 19/12/2009
penso di si:)

Ultima modifica effettuata da carant il 19/12/2009 alle 21:36


Antonio
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:56
Martedì, 22/12/2009
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 16:55
Mercoledì, 30/12/2009
Testo quotato

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

  1. public void carico()
  2.         {
  3.            ...sottoprogramma...
  4.         }



nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET

  1. public secondoform()
  2.         {
  3.             InitializeComponent();
  4.  
  5.             carico();
  6.         }



ma mi dice che il nome "carico" non esiste nel contesto corrente

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:11
Giovedì, 31/12/2009
Testo quotato

Postato originariamente da microprocessore:

Testo quotato

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

  1. public void carico()
  2.         {
  3.            ...sottoprogramma...
  4.         }



nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET

  1. public secondoform()
  2.         {
  3.             InitializeComponent();
  4.  
  5.             carico();
  6.         }



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++

  1. static class Generale
  2. {
  3.   public void carico() {}
  4. }



"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo