wxGrid->GetSelectedRows ist immer leer!?



  • Hallo
    Hab ein grosses Problem.
    Beim Aufruf von wxGrid->GetSelectedRows() ist das zurückgegebene Array immer leer, auch wenn Zeilen markiert sind.
    Ist das ein Bug oder was mach ich falsch?

    Ich will markierte Zeilen aus der Tabelle löschen auf Knopfdruck:

    void MainPanel::OnDelete( wxCommandEvent& event )
    {
        wxArrayInt rows = m_table->GetSelectedRows();
        if( !rows.IsEmpty() )
        {
            m_table->DeleteRows( rows.Item( 0 ), rows.GetCount() );
        }
    }
    

    Da tut sich gar nichts, und wenn ich mir rows.GetCount() in ner Fehlermeldung ausgeben lasse, steht da "0" 😞

    Für Hilfe wär ich Dankbar



  • hier noch der Auszug aus der wx Docu

    wxArrayInt GetSelectedRows() const
    
    Returns an array of selected rows.
    

  • Mod

    Ist leider einer der bekannten Bugs in wxGrid.
    Im wxForum müsstest du einen Patch dafür finden, evtl. ist es auch in der neuesten Version von wxWidgets gepatched.



  • Ach so, und ich mach mich halb wahnsinnig deswegen 😞

    Danke Dir.



  • Also den Patch hab ich nicht gefunden.
    Hab nun die wxWidgets Version 2.8.4 (für gtk) installiert. Das Problem besteht aber noch.
    Mach nun einen Work-Around mit den Events für Selection und left click und Speicher dann die aktuelle Selektion, die ich aus dem Event Objekt per GetRow() rausfinde, in nem Zeiger der Panel Klasse.
    Nicht so doll, aber wird funtkionieren.



  • Alternativ könntest du evtl. auf wxSheet umsteigen.



  • der work around funktioniert echt gut. man muss nur dran denken die gemerkte reihe immer aktuell zu halten.


Anmelden zum Antworten