Scrollbar einbauen, bei zu langer Liste von Anzeigeelementen

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von theodrin.

    Scrollbar einbauen, bei zu langer Liste von Anzeigeelementen

    Hallo!

    Frage bezüglich Scrollbars:

    Ich habe ein Auswahlfenster wo man kanäle für eine messung anhakeln soll. Geht auch gut. Während der Messungen werden aber zu jedem Kanal eigenschaften angezeigt, so dass sich das ganze nicht mehr au einem Bildschirm ausgeht.

    Also sieht so aus:

    Kanal Messwert a Messwert b Messwert c

    1 ..... ..... ......

    2 ...... ..... .....

    ....



    So und jetzt wollt ich eben einen Scrollbar machen. Also noch mal zum verständnis: Ich hab kanäle zum anhakeln dann erstell ich mir einen Liste mit Kanälen und dazu gehörigen verschiedenen Messwerten. Also in der Breite kein Problem! Nur in der Länge. Also zu viele Kanäle.

    Wie mach ich das jetzt?

    wenn ich einen Scrollbar da hinzeichne, wie verbind ich die elemente mit dem Scrollbar oder ja, keine Ahnung?
    ahoi,

    benutzt du denn ein steuerelement zum auflisten ?
    sowas wie listview etc. haben eigentlich eigene scrollbalken die kommen wenn die
    liste die größe des steuerelementes sprengen
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    nein im Moment stehen da zuerst ein label mit Kanalnummer, dann wieder ein Label. Daneben eine Checkbox, daneben eine textbox. Also quasi wenn angehakelt wird geschaut ob der wert der reinkommt (Messwert -> label) größer ist als eingstellter, aber egal.

    Alsoich hab da nur die 4 sachen, einmal.

    Dann im Programm schau ich wie viele Kanäle und erstell mir demenstprechend Anzahl * die 4 Felder. Und das geht halt länger runter als mein Fenster groß ist.

    Und nein hab ich nirgends in listboxen. Wollt die eh schon da reinziehen, aber geht nicht. Ein Vorschlag?
    Hallo theodrin,
    alle Controls in ein Frame als Container setzen und
    diesen Code einfügen:

    Visual Basic-Quellcode

    1. Private Sub VScroll1_Change()
    2. Call VScroll1_Scroll
    3. End Sub
    4. Private Sub VScroll1_Scroll()
    5. Frame1.Top = -VScroll1.Value
    6. End Sub


    Oder du nimmst irgend ein Control, dass Tabellen anzeigen
    kann, z.B. ein Flexgrid.
    Gruss,

    Neptun
    mhh ich habe gerade mal gegoogelt und es soll möglich sein der form scrollbars
    zu zuweisen

    vielleicht hilft dir das hier ein wenig (sry meine vb6 zeit ist schon eine weile her)

    google.de
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    hmmm, bringt mich irgendwie nicht weiter.

    Ich frag mich warum ich das nicht in eine Box/container reinhauen kann. Dann erstellt er mir die Elemente aber der Container bleibt gleich groß wie eben an Anfang definiert nur auf der Seite kommt ein Scrollbar dazu. Ich hab mir nicht gedacht das das so ein Problem sein kann...

    lg,

    theodrin
    nun an solche ein steuerelement hatte ich auch gedacht wusste jetzt nur nicht inwieweit
    die bei vb6 enthalten sind
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hmm, hab jetzt mal pause gemacht...
    Und hab eventuell eine neue Idee. Muss noch ausprobieren. Aber bevor ich mich wieder rumärgere:
    Also mal kurz die Idee: Ich schalte einfach nach dem erstellen 20 (oder wie viele halt auf mein UserForm passen) visible und die anderen drunter invisible. Wenn ich jetzt am Scrollbar runterziehe, dann schalte ich das oberste invisible, ein weiteres unteres auf visible und verrücke mit .top alle Elemente nach oben(Eine "Zeilenhöhe"). Aber hmm, geht das? Regt er sich auf wenn ich "über" den oberen Rand verschiebe?
    Na ja, ansonsten hab ich eben so ein BoxElement nicht gefunden, das das tut so wie ich das will. Und gut zugegeben ist eigentlich ne blöde Variante die da jetzt vorgestellte aber wenns ginge wär das toll... Also wenns nicht geht, bitte um Rettung vor weiteren Ärgernissen, ansonsten probier ichs halt aus und berichte...

    lg,
    theodrin
    Also Version 5

    Aber das klappt so, wie ich mir das gedacht hab. Also zuerst einmal scrollbar wert so lang machen wie eben elemente drüber schauen. Dann einfach den Wert vom Scrollbar auslesen und anhand von dem alle Elemente eben um die gewünschte anzahl nach oben verschieben und invisible machen, bzw, beim runterscrollen eben wieder visible machen.

    danke für Hilfe

    theodrin