| 

.NET C# Java Javascript Exception

1
Hallo Leute,
mein neues Projekt platzt förmlich vor Controls(Checkboxen, Labels, Buttons). Wenn ich diese Anwendung nun starte, dauert es erstmal bis alle Controls geladen sind. Wenn ich jetzt die Form per Drag n' Drop rumschiebe laggt das ganze. Gibt es bei VB.NET sowas wie "preloader" oder sonstige Möglichkeiten Controls/ Forms performanter zu laden/ anzuzeigen?

Grüße
Spicejam
21.06.2010
spicejam 853 2 6
Du meinst es 'laggt' wenn Du verschiebst während noch die Controls initialisiert werden? Oder im Allgemeinen?
DaSpors 22.06.2010
Beides, beim Initialisieren und dannach auch. (ca. 80 labels, 160 checkboxen, 20 textboxen)
spicejam 24.06.2010
2 Antworten
1
Wenn du "double buffering" aktivierst sollte sich der Effekt abschwächen oder gar ganz verschwinden.

Schreib dazu folgenden Code in Init-Routine fürs Formular.

this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();


Edit:
Eine mögliche Lösung für dein Problem das der Designer nicht mehr mitspielt wäre die zwei Zeilen vom Compiler nur im Release-Modus zu aktivieren. Zwar würde es dann im Debug-Modus weiter "Laggen" aber im Release-Build wäre das Problem dann weg.
Umsetzten kannst du das mit den Compiler-Anweisungen und Compiler-Konstanten.

Ein Beispiel:
public void Form1(){

InitializeComponent();
...
#if !DEBUG
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
#end if
...
}


in VB.Net:

public sub New()

InitializeComponent()
...
#if not DEBUG then
me.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true)
me.UpdateStyles()
#end if
...
end sub


Falls du die SetStyle-Anweisung in die InitializeComponent-Methode geschrieben hast, könnte das auch das Problem sein. Im Construktor nach dem Aufruf von "InitializeComponent" ist diese besser aufgehoben.
24.06.2010
Floyd 14,6k 3 9
Floyd 14,6k 3 9
1
Hey Floyd, danke für den Tipp. Es ist zwar minimal schneller beim laden und laggt beim Drag n' Drop nicht mehr aber jetzt kann ich meine Form im Designer nicht mehr einsehen. Es kommt ein Download- Dialog vom Internet Explorer(Navigation abgebrochen). Hast du dafür evtl noch ein Tipp? Ich meine das reicht mir schon ich kanns ja vorm Kompilieren eintragen aber vllt gibt es ja eine Lösung. Danke
spicejam 24.06.2010
Hab meinen Beitrag editiert und eine eine mögliche Lösung und ein paar Erklärungen dazugeschrieben.
Floyd 24.06.2010
Funktionierts?
Floyd 24.06.2010
Sorry das ich so spät antworte. Funkt alles thx.
spicejam 27.06.2010
0
Vielleicht solltest du die Architektur deiner Anwendung überdenken. Wenn so viele Controls auf einem Formular stecken, dann kann das wohl nicht übersichtlich sein. => Aufteilen in verschiedene Formulare, die zur Laufzeit nachgeladen werden.

tack
12.08.2010
tack 294 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH