Listview größe automatisch anpassen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von soundsack.

    Listview größe automatisch anpassen

    Mal eine Frage:

    Stimmt dert Code so, wenn ich möchte, das das Listview automatisch seine größe anpasst, wenn mehr Text drinn ist?

    VB.NET-Quellcode

    1. Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
    2. ListView1.AutoSize = True
    3. ListView1.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
    4. End Sub


    Oder was muss ich da noch reinmachen in den Code?

    Ralf
    Hey,

    was meinst du mit "Größe automatisch anpassen"? Sollen sich die Spalten automatisch an die Größe der Texte anpassen? Dann kannst du es so machen (Ansicht Details):

    VB.NET-Quellcode

    1. liste.Columns(0).Width = -1 ' -1 = Spalte an Textlänge ausrichten
    2. liste.Columns(1).Width = -2 ' -2 = Spalte nützt freien Restplatz

    Gruß, Manschula
    Dann musst du die Zeile zählen.
    Die Anzahl mit 17 (Zeilenhöhe) multiplizieren.
    Dazu noch 28 (Columnheader-Höhe) addieren und schon hast du die Höhe aller Items der ListView.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Danke euch :thumbsup:

    Nur noch kurz, falls ich mich wieder falsch ausgedrückt habe ( habe es nicht so mit formulierungen, sorry):
    Angenommen es sind 20 Zeilen zu sehen aber 23 Zeilen sind im Listview weil 23 EAN eingegeben habe in den Textboxen und die dann per Einfügebutton in das Listview eingefügt habe, wollte ich so das sich das ListView automatisch vergrößert.
    Ist deine Methode dann die richtige T1g0r ?

    Ralf
    Versuchs doch einfach mal.
    Natürlich muss du die Formgröße gegebenenfalls auch noch ändern.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Hm, da hat Manschula recht das habe ich nicht beachtet :(

    Es geht nur darum das ich das Listview so drucke und alles was nicht sichtbar ist im ListView, nicht mitgedruckt wird:

    VB.NET-Quellcode

    1. Dim g As Graphics = e.Graphics
    2. Dim bm As New Bitmap(ListView1.Width, ListView1.Height)
    3. Dim _rec As New Rectangle(10, 10, ListView1.Width, ListView1.Height)
    4. ListView1.DrawToBitmap(bm, _rec)
    5. g.DrawImage(bm, 5, 5)


    Ralf
    Dann schau mal hier: ListView-Inhalt drucken (VB 2005)
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Danke euch für eure Hilfe. :thumbsup:

    an Manschule:
    Deine 2 Zeilen haben mir viel geholfen um das ListView so hinzubekommen das es gut aussieht.
    Kann man die Zeilen später auch bei Datagrid anwenden?

    an T1g0r:
    Habe mir mal den Link angeschaut den du gepostet hast.
    Der macht ja vieles.
    Werde erstmal nur mit 30 Zeilen arbeiten weil mehr werden nicht gebraucht zum anfang.
    Den Code aus deinem Link werde ich mir mal in ruhe im Urlaub anschauen.
    Wenn ich dann damit probleme haben sollte, den so hinzubekommen wie ich brauch, kann ich mich dann bei dir melden? :S

    Danke und Gruß
    Ralf