ho creato un test all'interno di un progetto di test Unità, in cui voglio apparire una modulo utilizzando la sua funzione di ShowDialog()
:form.ShowDialog() non viene visualizzata la finestra con il debug abilitato
[TestMethod]
public void TestDialog()
{
// This class inherits from Form
TestForm serviceTestForm = new TestForm("My test form");
serviceTestForm.ShowDialog();
return;
}
I si aspetta che questo test raggiunga ShowDialog()
ed esegua 'indefinitamente', fino a quando non chiudo la finestra. Tuttavia, quando eseguo questo test "con debug", il test raggiunge ShowDialog()
e non viene visualizzato alcun modulo. Stranamente, questo stesso test funziona allo stesso modo se eseguo "senza debug".
Devo essere in grado di eseguire il test "con debug" e visualizzare la finestra.
Altre note:
Show()
non è auspicabile, in quanto non aspettare la finestra per chiudere per continuare. (Inoltre ... non funziona.)- Questo stesso codice ha funzionato in precedenza su un altro progetto che utilizza .NET 3.5. Questo è solo per dire che la strategia
ShowDialog()
ha sicuramente funzionato prima. (E sì, ho copiato direttamente quel codice funzionante.) - La mia domanda è simile a this one, tuttavia, il mio modulo non è figlio di un'altra finestra di dialogo e non vive all'interno di un thread dell'interfaccia utente padre.
Ho avuto un raro caso di aver bisogno di questo e la tua risposta ha aiutato. Tuttavia mi sono reso conto che posso solo creare l'oggetto modulo nel test, quindi impostare myform.visible = true nel test. Funziona perfettamente :) – RosieC
Il codice come David presentato ha funzionato bene per me su VS2013. Tuttavia su VS2015 ha smesso di mostrare il modulo. Grazie mille, il lambda mi ha aiutato. –
Questo lo ha risolto per me su VS2017, dove questo è diventato un problema dopo un crash VS – Jens