Salve a tutti,
a causa di un progetto universitario, mi sono imbattuto per la prima volta in C# ed interfacce grafiche.
Bene, il mio problema è semplice.
La mia classe è progettata in maniera tale che, l'interfaccia varia in base al parametro di ingresso al costruttore.
Bene, come posso far si che, nel main Application.Run si aggiorni con un nuovo form, senza chiudere e riaprire l'applicazione?
Ho provato diverse soluzioni, ma invano.
La mia idea principale era quella di far partire su un thread Application.Run, e utilizzare le istruzioni form.Show() per variare il contenuto del form, ma ciò non ha funzionato. Il form viene creato(sento un particolare file audio impostato all'avvio), ma a video visualizzo la schermata principale, e non la nuova.
Ecco un pezzetto di codice:
codice:
static void Main()
{
Thread threadApplication = new Thread(new ThreadStart(RunApplication));
threadApplication.Start();
string pathSurevy = Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
+ subPathSurvey + nameSurveyFile;
while (countLines(pathSurevy) > 0)
{
Thread threadForm = new Thread(new ThreadStart(RunStart));
threadForm.Start();
Thread.Sleep(50000);
}
}
public static Interface makeInterface()
{
string relativePath = subPathSurvey + nameSurveyFile;
string survey = extractLine(relativePath, new object(), new EventArgs());
if (survey != null)
{
LogicaDiSistema logicSystem = new LogicaDiSistema();
return logicSystem.receiveSurvey(survey);
}
else
{
return new Interface(null);
}
}
public static void RunStart() {
makeInterface().Show();
}
public static void runApplication() {
Application.Run(new Interface(null));
}
Il Form Interface, istanzia gli oggetti in base al Metatag ricevuto, se è nullo, visualizza una sorta di messaggio.
Il mio intento è quello di cambiare dinamicamente l'interfaccia in base ai vari metatg contenuti in un file di testo!
Se utilizzo la funziona ShowDialog() in sostituzione della Show(), il programma funziona, ma mi apre un nuovo "popup" per ogni nuovo form!