Zmiana okna niemodalnego na modalne

0

Witam. Mam taki problemik. Z glownej formy odpalam okno z progressem, ale musze jeszcze przed rozpoczeciem operacji (ktora pozniej leci na osobnym watku) wykonac pare przygotowan na glownym watku formy. Zatem nie moge dac okna progressu jako okno modalne, bo wstrzyma mi ono wykonywanie operacji w glownym watku. Zatem w jaki sposob stworzyc okno, ktore zachowywalo sie byc jak okno modalne (blokowalo dostep do rodzica), ale nie wstrzymywalo wykonywania jego kodu?

0

Myśle ze wystarczy wprowadzić zwyczajną forme z opcją TopMost na true, a formę rodzica można ewentualnie zawsze na chwile ukryć ;p

0

Albo pusc samo pokazywanie modalnego w osobnym watku?

pozdrawiam
johny

0

probowalem puscic pokazywanie modalnego w osobnym watku... ale wtedy ono wcale nie jest modalne... bo dalej mozna kliknac na forme i sie przelaczy... probowalem tez odpalic je jako modalne ShowDialog([uchwyt do formy]) ... ale wyrzucalo mi ze nie mozna tak zrobic bo w watkach mieszam....

pytanie z innej beczki:
w jaki sposob najlepiej rozwiazac dany przypadek:
mam sobie okienko progressa. Jedna z metod okienka jest jako callback w ktorym przesylane sa rozne informacje (4 parametry). Taki callback wywolywany jest z osobnego watku... i co teraz trzeba zrobic by zmienil on cokolwiek w oknie progressa?

0

Co do drugiego pytania - to Invoke.

Jesli chodzi o pierwsze, to moze sam zasymujesz zachowanie modalne, a okienko pokazesz samym Show(). Albo niech watek wykonujacy progressa wykona/wywola te operacje przygotowujace na glownej formie?

pozdrawiam
johny

0

Tylko ze jak z nowego watku wywoluje ShowDialog ... to nie jest ono oknem modalnym formy. A jak chce jako parametr przekazac ShowDialog(this.ParentForm) to wywala mi blad o operacjach miedzy watkowych.... jakies pomysly?

0

Zrob tak. Tworzysz swoj dialog przez

MojDialog dialog = new MojDialog(this);

i teraz dialog, zanim zrobi to co tam robi, poprzez Invoke wywoluje metode parenta, ktora robi te przygotowawcze cos.

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1