webForumDet fria alternativet

uppdatera ListBox när modalt fönster stängs

.NET

4 svar · 289 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Jag har en applikation som öppnar ett modalt fönster och man lägger till data i en collection. Problemet är att när jag stänger ner fönstret nu så är jag tvungen att uppdatera ListBox:en genom ett knapptryck.

Jag vill istället att det ska lösas när jag stänger ner fönstret automatiskt, typ onfokus el liknande. Vad finns det för funktion för detta?

Medlem sedan juni 20022 599 inlägg
#2

Beror lite på .. Om du vill att listboxen alltid ska refreshas när huvudfönstret (åter)får fokus så kan du lägga det i:

private void DittHuvudFönster_Activated(object sender, System.EventArgs e)
{

...

}

(Du kan också lägga det bland den kod i det modala fönstret som lägger till ett objekt i collectionen.)

Medlem sedan nov. 20022 355 inlägg
#3

Fråga då, om jag vill lägga det i det modala fönstret? Så som jag gör nu så skickar jag med min collection till det modala fönstret med ByRef. Kan jag nå listboxen på något sätt därifrån?

Medlem sedan juni 20022 599 inlägg
#4

Kan jag nå listboxen på något sätt därifrån?

Du kan ju deklarera listboxen som publik, fast det är inte särskilt snyggt.

Om du istället lägger in en publik funktion UppdateraListBox i din huvudfönsterklass så kommer du åt den från ditt modala formulär med:

((HuvudFönsterKlassNamn)this.Owner).UppdateraListBox();

En tredje (och bättre?) version är att du helt enkelt refreshar listboxen direkt efter anropet till ShowDialog(this) i huvudfönstet. Det är ju ändå modalt och kommer inte att utföras förrän dialogen stängts?

Medlem sedan nov. 20022 355 inlägg
#5

Helt sant, tack för hjälpen! :)

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)