32 Stimmen

Wie wähle ich alle Elemente in einem Listenfeld aus, wenn das Kontrollkästchen aktiviert ist?

Ich muss alle Elemente in einer ListBox auswählen, wenn eine CheckBox angeklickt wird. Ist es möglich, alle Elemente in der ListBox mit einer einzigen Codezeile auszuwählen? Oder muss ich alle Elemente in einer Schleife durchlaufen und für jedes einzelne Element "selected" auf "true" setzen?

0voto

Ich habe die Idee von nawfal zu dem hinzugefügt, was ich bereits hatte, und zwar mit "BeginUpdate". Zusätzlich wird auch die Position der Ansicht beibehalten, wie es der Benutzer erwarten würde. Für mich scheint das jetzt alle Probleme zu lösen:

public void SelectAll()
{
    bool prevBusy = MouseHelper.IsBusy;
    MouseHelper.IsBusy = true;
    int topIndex = TopIndex;

    // BUG: In 'SelectionMode.MultiExtended' the box gets crazy
    SelectionMode previousMode = this.SelectionMode;
    this.SelectionMode = SelectionMode.MultiSimple;

    this.BeginUpdate();

    for (int i = 0; i < Items.Count; i++)
    {
        SelectedIndices.Add(i);
    }

    this.EndUpdate();
    this.SelectionMode = previousMode;

    TopIndex = topIndex;
    MouseHelper.IsBusy = prevBusy;
}

-6voto

Bartek Punkte 1
private void Button_Click(object sender, RoutedEventArgs e)
    {

            listbox.SelectAll();

    }

0 Stimmen

Um welche Version von .Net handelt es sich?

0 Stimmen

Es gibt keine SelectAll-Methode in der WinForms ListBox. Sie denken wahrscheinlich über die WPF-ListBox, aber diese Frage ist getaggt "Winforms" und ".net-2.0".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X