Pivello ha scritto:
ho fatto questa prova. per non dover digitare 1, 2 o 3 nel textbox2 ogni volta, volevo aprire 3 volte il programma la mattina, digitare 1 2 e 3 nelle rispettive form.
questo funziona aprendo più volte il file exe.
Secondo me, ci sono diverse scelte che non sono corrette per la risoluzione del problema, quindi vado per punti.
Innanzitutto, la scelta di creare un'applicazione
Windows Forms: se l'interfaccia ti serve solamente per inserire un numero in una casella da utilizzare come parametro per l'esecuzione di una procedura, allora quella GUI è sprecata e si potrebbe tranquillamente farne a meno.
Nel richiedere l'inserimento del parametro da interfaccia utente, stai rinunciando a una possibilità di automatizzare il processo in quanto uno dei parametri richiesti deve essere manualmente inserito dall'utente.
Suggerisco quindi a questo scopo di
creare una applicazione di tipo Console, tralasciando Windows Forms.
In questo modo, non hai alcun Form da gestire ed eventi da attendere inutilmente per poter eseguire la procedura.
Ogni applicazione .NET consente poi di specificare parametri in fase di lancio, che puoi recuperare dal parametro
args[] del metodo
Main sulla classe
Program.
Puoi quindi prevedere la possibilità di indicare il valore del parametro su cui si basa la procedura, ossia quello che stavi inserendo dal Form,
acquisendolo direttamente dalla riga di comando e specificandolo pertanto come argomento in fase di lancio dell'eseguibile.
Non potrai ovviamente avviare il tuo programma con un doppio clic, in quanto lanceresti l'eseguibile senza indicare il valore di questo parametro, ma nulla ti vieta di
crearti dei file batch o degli script
PowerShell che si possano cliccare e avviare, e che vadano a chiamare il tuo programma con il giusto valore del parametro che normalmente inseriresti a mano tramite TextBox, mentre ora viene preso automaticamente dall'esterno, dall'invocazione del programma stesso.
Quando dici che esegui i programmi "tre volte ogni mattina per tre contesti diversi", direi che puoi sostituire questa azione con l'avvio di tre script appositamente progettati per chiamare l'eseguibile con il parametro corretto, oppure - ancora meglio - se vuoi automatizzare l'operazione, puoi .
Riassumendo il tutto, togli la GUI che non serve ed elimina il passaggio manuale con cui specifichi il parametro che occorre alla tua procedura; successivamente, crei la possibilità di prendere tale valore dall'esterno, e alla fine automatizzi il tutto pianificando l'esecuzione del programma (una, due, tre, infinite) indicando il valore del parametro direttamente nel comando da eseguire, o lanciando script che fanno questa cosa.
Studia i link riportati sopra per sapere come fare nel dettaglio.
In caso di dubbi, chiedi.
Ciao!