Oppure

Loading
15/03/19 16:39
fedino
Problema chiamare da file "Form1.cs" una "public void salvaFile()" che si trova in altro file.
Nel Form1 ho un pulsante per salvare in un file un array che si trova in altro file "public class crea lista".
Entrambi i file fanno parte dello stesso programma (namespace).


 public partial class Form1
.
.
.
private void Salva_Click(object sender, EventArgs e)
        {
            lista.SalvaSuFile();      Non funziona !!!!!           
        }



public class crea lista
.
.
.
public void SalvaSuFile()
        {
            if (VariabiliGlobali.ScriviFile == true)
            {
                // cancella testo nel file
                FileStream filePT1 = new FileStream(@"e:/PercorsoTreno_1.txt", FileMode.Truncate);
                filePT1.Close();

                // scrive nel file
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"e:/PercorsoTreno_1.txt", true))
                {
                    foreach (string item in pannello)
                    {
                        file.WriteLine(item);  // aggiunge linea di testo
                    }
                }
                VariabiliGlobali.ScriviFile = false;


Grazie per la collaborazione

Ultima modifica effettuata da Thejuster 17/03/19 11:56
aaa
15/03/19 17:06
nessuno
Ma cosa è crea lista??

Non si capisce molto dell'organizzazione delle classi del tuo programma.

Hai due form?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/03/19 21:35
fedino
Non ci sono due form.
"public class crealista" è una public class che genera una lista all'interno di un ArrayList.
In effetti ho scritto male correzione:


public partial class Form1 
. 
. 
. 
private void Salva_Click(object sender, EventArgs e) 
        { 
            crealista.SalvaSuFile();      // Non funziona !!!!! da quì vorrei attivare "public void SalvaSuFile()"
          
        } 



public class crealista 
. 
. 
. 
public void SalvaSuFile() 
        { 
            if (VariabiliGlobali.ScriviFile == true) 
            { 
                // cancella testo nel file 
                FileStream filePT1 = new FileStream(@"e:/PercorsoTreno_1.txt", FileMode.Truncate); 
                filePT1.Close(); 

                // scrive nel file 
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"e:/PercorsoTreno_1.txt", true)) 
                { 
                    foreach (string item in pannello) 
                    { 
                        file.WriteLine(item);  // aggiunge linea di testo 
                    } 
                } 
                VariabiliGlobali.ScriviFile = false; 

Ultima modifica effettuata da Thejuster 17/03/19 11:56
aaa
15/03/19 21:56
nessuno
Non hai creato un oggetto di tipo crealista (nome comunque sbagliato per una classe) quindi non puoi usarne i metodi.

Non si capisce poi perché la classe gestisca in quel modo "variabili globali", cosa che ha poco senso in una classe (almeno im quel modo).

In realtà mi sa che il tuo codice è stato pensato poco oo.

Ti consiglio di lasciar perdere un attimo il codice e spiegarci cosa vorresti fare.

E ti consiglio anche di dedicare un po' di tempo ad un libro sulla OOP
Ultima modifica effettuata da nessuno 15/03/19 21:57
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
16/03/19 17:09
fedino
Risolto con un banale "canvas"
aaa
16/03/19 17:45
nessuno
La spiegazione di come hai risolto è peggiore dell'esposizione del problema ma me ne farò una ragione.

Resto convinto che tu non abbia usato correttamente la OOP.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
17/03/19 12:00
Thejuster
Postato originariamente da nessuno:

La spiegazione di come hai risolto è peggiore dell'esposizione del problema ma me ne farò una ragione.

Resto convinto che tu non abbia usato correttamente la OOP.


Aggiungo anche non hai istanziato la classe

E un errore madornale aggiungere un controllo al Form perché contenga la funzione Salva su file.
Ti ha funzionato solo perché semplicemente aggiungendo il controlla al form la classe è già istanziata.

cmq ti bastava semplicemente fare al click.


crealista crea = new crealista();

crea.SalvaSuFile();

mire.forumfree.it/ - Mire Engine
C# UI Designer