Utworzyłem testu w ramach projektu badanej jednostki, w której chcę pop-up Formularza używając jego ShowDialog()
funkcję:Form.ShowDialog() nie wyświetli okno z debugowanie włączone
[TestMethod]
public void TestDialog()
{
// This class inherits from Form
TestForm serviceTestForm = new TestForm("My test form");
serviceTestForm.ShowDialog();
return;
}
I spodziewaj się, że ten test dotrze do ShowDialog()
i uruchomi się "na czas nieokreślony", dopóki nie zamknę okna. Jednak po uruchomieniu tego testu "z debugowaniem" test dociera do ShowDialog()
i nie pojawia się żadna forma. O dziwo, ten sam dokładny test działa, jeśli uruchomię "bez debugowania".
Muszę być w stanie uruchomić test "z debugowaniem" i wyświetlić okno.
Inne uwagi:
Show()
nie jest pożądane, ponieważ nie czekać do okna, aby zamknąć, aby kontynuować. (Poza tym ... to nie działa.)- Ten sam kod pracował wcześniej w innym projekcie wykorzystującym .NET 3.5. To tylko, że strategia
ShowDialog()
na pewno zadziałała wcześniej. (I tak, skopiowałem ten działający kod bezpośrednio.) - Moje pytanie jest podobne do this one, jednak moja forma nie jest dzieckiem z innego okna dialogowego i nie jest w obrębie macierzystego wątku interfejsu użytkownika.
Miałem rzadki przypadek potrzeby, a Twoja odpowiedź pomogła. Jednak zdałem sobie sprawę, że mogę po prostu utworzyć obiekt formularza w teście, a następnie ustaw test myform.visible = true. Działa idealnie :) – RosieC
Kod taki jak prezentowany David działał dobrze dla mnie na VS2013. Jednak na VS2015 przestał wyświetlać formularz. Dziękuję bardzo, pomógł lambda. –
Naprawiono to dla mnie w VS2017, gdzie stało się to problemem po awarii VS – Jens