Problem mit Form1->Size: ScrollBars



  • Hi!

    Ich habe die Größe meines Form1 an die Größe meines ListViews gekoppelt.
    Wenn ich aus der Maximieren-Ansicht auf den Wiederherstellen-Button drücke tauchen ScrollBars auf, obwohl alle Objekte im Sichtbereich sind.

    Die Größe des ListViews wird anscheinend erst geändert nachdem sich das Programm entschieden hat die ScrollBars zu aktivieren.

    Kann man das irgentwie umgehen?
    Kennt jemand von euch einen Trick?

    void Form1::Form1_SizeChanged(System::Object *  sender, System::EventArgs *  e)
    {
    	this->listView1->Height = this->Height - 112;
    	this->listView1->Width = this->Width - 191;
    }
    


  • Was spricht denn dagegen die Listview mit der Eigenschaft Anchor auf alle 4 Ecken festzusetzen ?



  • Das mit dem Anchor kannte ich noch noch nicht, vielen herzlichen Dank!

    Das Problem ist jedoch leider nicht aus der Welt:

    Von der Maximize-Ansicht zurrück zur Normal-Ansicht kommt nicht das gewünschte Ergebnis. Die ListView behält jetzt die Größe aus der Max-Ansicht, und wenn man die Größe des Fensters etwas zurechtzieht stellt sich die Listview ein.

    Unschöne Sache... 😞



  • Kann ich nicht nachvollziehen.

    Ich habe ein leeres Projekt genommen, der Listview ein paar Elemente verbratzt. Die Scrollbars werden wie gewünscht angezeigt.

    http:://www.rothmichael.de/cpp/ListViewTest.zip



  • Argh, schade. Ich kann deine Verison nicht laden:

    [quote]
    Die Projektdatei hat die Veriosn "8,0".
    Visual Studio .NET kann nur Projektdateien der Versionen 7.0 und 7.1 laden.
    [code]

    Wenn du maximierst und dann auf "Wiederherstellen" klickst, siehts dann normal aus?
    Dann liegt das wohl an meiner Verison: Microsoft Visual Studio .NET 2003

    Bei mir bekommt Form1 ScrollBars obwohl alles im Sichtbereich ist. 😞

    Aber trotzdem vielen Dank für deine Mühe!

    Ich versuch mal ein wenig mit copy und paste ob ich dein Prog nicht doch zum laufen bringe ^^

    Einen schönen Tag noch!

    pAT



  • Hm, Du verwendest dann mit dem 2003 auch das Framework 1.x ?

    May be das es da noch fehlerhaft war (btw.: Der Umstieg auf das 2.0er Framework lohnt sich IMHO aber wirklich. Meiner persönlichen Meinung hat man da vieles nachgebaut was im 1ner einfach fehlte oder buggy war, aber der Eindruck kann auch an zu wenig wissen liegen).

    Btw.: Die ExpressEdition könnte zum testen helfen und noch als Hinweis: Die Syntax hat sich geändert gegenüber dem VC7, einfach kopieren wird nicht ganz gehen.



  • Juhuu!

    Ich hab zwar nicht den Fehler, dafür die Ursache gefunden.
    Ich habe im ersten Post den Quellcode etwas gekürzt gepostet, hier der vollständige:

    void Form1::Form1_SizeChanged(System::Object *  sender, System::EventArgs *  e)
    {
    	//this->listView1->Height = this->Height - 112;   // jetzt mit Anchor
    	//this->listView1->Width = this->Width - 191;
    
    	this->textBox1->Width = this->listView1->Width;   // <---:warning: mitlerweile auch mit Anchor 
    
    	if (this->Height < 610.0) this->groupBoxFeatures->Visible = false; // wenn das Fenster zu klein wird
    	else this->groupBoxFeatures->Visible = true;	                     // blende die unwichtige grp-box aus
    }
    

    Die Textbox befindet sich genau über dem Listview und zeigt immer das ausgewählte Item an (wie in Excel).
    Seit ich die Textbox auch mit Anchor versehen habe funktioniert es einwandfrei.

    Vielen Dank für deine Mühen, ich hoffe ich kann mich mal revanchieren.

    Schönes Wochenende und frohe :xmas1:

    pAT



  • www.pat schrieb:

    Vielen Dank für deine Mühen, ich hoffe ich kann mich mal revanchieren.

    Hilf anderen im Forum wenn Du zu einer Frage eine Antwort hast, das reicht völlig =o)



  • abwarten, spätestens im Jahr 2153 hab ich dich eingeholt 😉
    Bis dahin: jo, mach ich gerne wenn ich kann!



  • Ohje, mach mal langsam, ich hab ich so die Zeit zum lernen das ich den VOrsprung ausbauen kann 😃


Anmelden zum Antworten