C# listBox Eintrag nach oben und unten verschieben?
Hallo,
ich möchte in einer listBox per Buttons, EInträge nach oben oder unten verschieben. Also quasi einfach neu anordnen. Ich teste schon die ganze Zeit rum. Aber es will einfach nicht hinhauen. Ständig kringelt er mir die Syntax rot an. Evtl kann mir wer helfen, wie man das schreibt? Ich habe schon sehr viel rumprobiert. Vom rumexperimentieren, wo meiner Meinung nach am meisten Sinn macht war:
if (listBox1.SelectedIndex > 0) if (listBox1.SelctedIndex != -1) listBox1.SelectedItems(listBox1.SelctedIndex - 1)
Bei der Variante streicht er mir in der letzten Zeile das "SelectedItems" rot an.
3 Antworten
SEmikolon danach vergessen?
Wie lautet die Fehlermeldung dazu?
Stimmt.
(Hab außerdem in letzter Zeit zu viele VB-Fragen beantwortet ...)
Ändert aber nichts daran, dass es ein typischer Anfängerfehler ist, einfach nur "rote Linie" zu sagen, das ist wie beim Arzt "hier aua" zu sagen.
[BrowsableAttribute(false)]
public ListBox.SelectedObjectCollection SelectedItems { get; }
Wie Du siehst, ist diese Methode eine get-Methode mit einem Rückgabewert. Du verwendest das aber als set.
https://msdn.microsoft.com/de-de/library/system.windows.forms.listbox.selecteditems(v=vs.110).aspx
So geht das auch nicht! Du musst die Reihenfolge der Items in der ListBox.Items Collection ändern.
Beispielsweise: Du willst den Eintrag an der Position listBox1.SelectedIndex um eine Position nach oben schieben?
if (listBox1.SelectedIndex > 0)
{
int newPosition = listBox1.SelectedIndex - 1;
object o = listBox1.Items[listBox1.SelectedIndex];
listBox1.Items.RemoveAt(listBox1.SelectedIndex);
listBox1.Items.Insert(newPosition, o);
}
SelectedItems ist eine Collection. Es gibt keine Funktion SelectedItems(int).