2016-10-28 2 views
0

Mit notwendigen vorbereitenden Aufgaben im OnLoad-Ereignis meiner MainForm (über langsam-ish genannt Funktionen: Server-Checks, Datenabruf, etc.), MainForm scheint darauf zu bestehen, nur auf den Abschluss dieser zu malen vorbereitende Aufgaben. Das Ergebnis ist mehrere Sekunden BLANK-Bildschirm, ohne dass etwas angezeigt wird.Access Form Paints zu spät

Ich habe Statusmeldungen in jedem Schritt in einem Textfeld in der MainForm (gefolgt von DoEvents) bereitgestellt, aber aufgrund der späten Malerei der MainForm, erscheinen sie tatsächlich. Mein Code kennt jedoch die Steuerelemente und ihre Werte, obwohl ich sie noch nicht sehen kann.

Ich habe versucht, Me.Refesh auf dem Weg ohne Ergebnis zu bespritzen.

Irgendwelche Vorschläge, um das Formular früher/zuerst zu malen, dann diese Funktionen ausführen?

Antwort

1

einige oder alle diese Anrufe zu einem späteren Ereignis verschieben:

  • OnCurrent
  • OnActivate

oder ein Splash-Screen, die diese Dinge lädt erstellen, dann Ihre Hauptformular öffnen .

Legen Sie Ihr Hauptformular fest, um den Begrüßungsbildschirm zu schließen.

+0

Danke @Gustav. OnActivate scheint ein guter Ansatz zu sein. Allerdings fällt mir auf, dass dieses Ereignis zweimal auf meine MainForm zu schießen scheint. Irgendwelche Gedanken, warum das sein könnte? –

+0

Das passiert nur, wenn das Formular deaktiviert und dann wieder aktiviert wird. – Gustav

+0

Hmmm, du hast Recht. Ich kann das Formular deaktivieren, dann wieder aktivieren. Ich werde diese Frage als SOLVED bezeichnen und mich darauf konzentrieren zu bestimmen, WARUM das Formular deaktiviert (nicht beabsichtigt) ist. –