Laden...

performance problem mit tasten feld zur direkteingabe eines wertes

Letzter Beitrag vor 18 Jahren 7 Posts 1.563 Views
performance problem mit tasten feld zur direkteingabe eines wertes

hallo
es ist mein erster beitrag hier im forum und ich weiß nicht, ob er hier richtig steht, aber einen versuch ist es wert.

zum problem:
ich möchte auf einer windows form insgesamt 30 tasten(oder felder) auf 100 ebenen, also insgesamt 3000tasten zur direkt eingabe eines artikels(es wird nur eine nummer benötigt, allerdings mus der button beschriftet sein) darstellen.
ich habe das mit einem button array[,] gemacht, das ich zur laufzeit erzeuge und dann die beschriftung und den tag für jeden button aus einer datenbank setze.
im tag ist die benötigte nummer gespeichert und der text ist die beschriftung.
die ebenen werden dann über seperate tasten angewählt.

das funktioniert auch, aber das anzeigen der form also das aufbauen der buttons dauert einfach zu lange. selbst das einfache visible machen der form, ohne sie komplett neu zu instanzieren dauert noch zu lange.

ich suche jetzt schon seit längerer zeit nach einer lösung und habe auch den thread
"Optimierungsideen ?" gelesen, wo es ja um ein ähnliches problem geht.
mir einen wert über musedown usw. zu holen funktioniert auch, aber wie bekomme ich dann mehrere ebenen realiesiert und wie die beschriftung?

ich wäre über jede art hinweis dankbar, da ich ähnliche anwendungen in vb6 geschrieben gesehen habe und diese laufen auch auf rechnern unter 500Mhz noch einigermassen schnell.

mfg

Hallo luciluke,

ist m.E. das gleiche Problem wie in Optimierungsideen ?.

herbivore

Original von herbivore
Hallo luciluke,

ist m.E. das gleiche Problem wie in
>
.

herbivore

hallo herbivore
ich habe ja auch geschrieben, dass ich das so wie in "Optimierungsideen ?" geschildert schon ausprobiert habe und es auch funktioniert.
nur fällt mir halt nichts ein, wie ich das mit den ebenen und der beschriftung hinkriegen soll.
der mousedown event ist jawohl nur eindimensional auf der form und ich weiß auch nicht wie ich die felder beschriften soll ohne selber zu zeichnen.
wenn du mir da einen tip geben könntest währe ich sehr dankbar.

mfg

Hallo lucilukem,

sorry, hatte ich überlesen.

Für die Ebenen könntest du TabPages verweden. Die Beschriftungen gehen mit DrawString ... oder ich hab es immer noch nicht genau verstanden. 🙂

herbivore

hallo hebivore

erst mal danke, dass man hier so schnell feedback erhält!!!

TabPages und DrawString, waren wohl die hinweise, die ich benötigte um weiter zu machen... also alles richtig verstanden. mal sehen, wie ich das umsetzen kann.

aber ist es denn grundsätzlich richtig, dass das laden oder erzeugen von buttons oder auch lables so zeit aufwendig ist, dass man sich anders behelfen muß, oder mache ich da etwas falsch?

und, sollte ich das ganze mit einer eigenen klasse wie z.B. "BaseTile" machen oder mich noch weiter mit vorhandenen controlls beschäftigen, um vielleicht ein "schnelleres" zu finden bzw. ein user controll erstellen?

mfg

Hallo luciluke,

aber ist es denn grundsätzlich richtig, dass das laden oder erzeugen von buttons oder auch lables so zeit aufwendig ist, dass man sich anders behelfen muß, oder mache ich da etwas falsch?

Das Problem ist nicht so sehr das Erzeugen, sondern dass bei alle folgenden Operationen - wie z.B. Paint, MouseMove usw. - immer alle Controls berücksichtigt werden müssen. Es ist daher eine hinzunehmende Tatsache, dass eine vierstellige Anzahl von Controls auf heutiger Hareware Performance-Probleme verursacht. Du bist daher gut betraten, wenn du deine eigene Klasse schreibst.

herbivore

ok, vielen dank erstmal hebivore

werde mich ans werk machen und alles soweit ändern.
wenn ich noch weitere denkanstöße benötige, darf ich mich ja hoffentlich nochmal melden.

mfg