Scroll Bar Position setzen



  • Hallo Leute,

    ich habe hier auf meiner Dialog Anwendung ein MS FlexGrid 6.0. So jedes mal wenn ich es neu initialisire steht die Scrol Position wieder ganz oben. Meine Frage ist nun wie kann ich nach der initialisirung an die letzte Position springen ?

    Wenn ich folgenden Code benutze funst es schon mal leider nicht.

    ScrollPos=m_FlexControl.GetScrollPos(SB_VERT);
    
    		m_FlexControl.SetSelectionMode(0);
    		m_FlexControl.Clear();
    		m_FlexControl.SetCols(10);
    		m_FlexControl.SetRows(2);
    		m_FlexControl.SetRedraw(false);
    		m_FlexControl.SetRow(0);
    		m_FlexControl.SetCol(0);
    		m_FlexControl.SetColWidth(0,500);
    		m_FlexControl.SetText("Nr.");
    	/////////////////////////////
    		m_FlexControl.SetRow(0);
    		m_FlexControl.SetCol(1);
    		m_FlexControl.SetColWidth(1,500);
    		m_FlexControl.SetText("Lauf");
    
    	         m_FlexControl.SetRedraw(true);
    		m_FlexControl.SetScrollPos(SB_VERT,ScrollPos,false);
    

    kann mir einer bei dem Problem Helfen ?

    Danke Coolsero



  • Jop, einfach merken 😉 anders wirst du das nicht hinbekommen.
    Problem ist ja das du neu initialisierst. Damit ist einfach ein neuer Zustand deiner Scrollbars definiert, außer du initialisiert mit gemerkten Werten.

    Leg doch einfach eine struct an wo du dir die nötigen Scrollbarwerte merkst?
    Beispiel: SCROLLBARINFO -> siehe MSDN

    Allerding verstehe ich nicht genau wieso du sie wieder einstellen willst. In der Regel hast du ja bei einer neuinitialisierung einen neuen contend gladen, egal wie der aussieht(Bild, Text, etc.). Diesen willst du ja auch mit neu berechneten Positionen und Größen initialisieren, nicht mit den alten des vorhergehenden contends.

    codeman


Anmelden zum Antworten