Laden...

ListViewItem fokusieren

Erstellt von Max1809 vor 11 Jahren Letzter Beitrag vor 11 Jahren 914 Views
M
Max1809 Themenstarter:in
67 Beiträge seit 2011
vor 11 Jahren
ListViewItem fokusieren

Hi,

ich habe das Problem das ich nach den Aktionen wie "Löschen" oder "Neuanlage", das letzte Element der ListView tatsächlich selektieren will, dies aber nicht funktioniert.

Hintergrund: Man könnte dann den z.B. "Löschen" Button einfach drücken, ohne die immer wieder ein Item zu selektieren.

Den Index des letzten Elements habe ich.

D
615 Beiträge seit 2009
vor 11 Jahren

Hallo Max1809

Versuchs mal hiermit:


protected DeleteButton...(object sender, EventArgs e)
{
     int selectedIndex = itemsListBox.SelectedIndex;
     itemsListBox.SelectedIndex = 0;
     DeleteFunction();
     itemsListBox.Focus();
     itemsListBox.SelectedIndex = selectedIndex;
}

Sollte das nicht klappen, bitte zeige wie genau du es bewerkstelligen möchtest.. (Dein Anasatz...)

Beste Grüsse

Diräkt

M
Max1809 Themenstarter:in
67 Beiträge seit 2011
vor 11 Jahren

Hallo Max1809

Versuchs mal hiermit:

  
protected DeleteButton...(object sender, EventArgs e)  
{  
     int selectedIndex = itemsListBox.SelectedIndex;  
     itemsListBox.SelectedIndex = 0;  
     DeleteFunction();  
     itemsListBox.Focus();  
     itemsListBox.SelectedIndex = selectedIndex;  
}  
  

Sollte das nicht klappen, bitte zeige wie genau du es bewerkstelligen möchtest.. (Dein Anasatz...)

Beste Grüsse

Diräkt

Hallo Diräkt,

danke für deine Anregung. 😃

Löschen habe ich folgendermaßen realisiert:

            // Löschen Kunden
            dtoKunde ausgewaehltesItem = (dtoKunde)this.listView1.SelectedItem;
            if (ausgewaehltesItem != null)
            {
                int selectedIndex = this.listView1.SelectedIndex;

                this.conKunde.loeschenKunde(ausgewaehltesItem); // Aus Datenbank löschen

                this.kunden.RemoveAt(selectedIndex); // nun aus der ListView löschen
                // Positionierung auf dem letzten Item der ListView
                this.listView1.Items.Refresh();
                this.listView1.Focus();
                this.listView1.SelectedIndex = this.kunden.Count - 1;
            }

Positioniert sich nun immer auf das letzte Element in der ListView.

Neuanlage sieht folgendermaßen aus:

          // Neuanlage eines Kunden 
            this.conKunde.neuerKunde();
            // Daten neu reinholen
            this._aktualisieren();

            this.listView1.Focus();
            this.listView1.SelectedIndex = this.kunden.Count -1;
D
615 Beiträge seit 2009
vor 11 Jahren

Hallo Marx1809

Leider habe ich gerade keine Zeit um schnell ein Test-Projekt zu machen, daher bitte ich Dich (damit auch andere Antworten können) genau zu definieren was folgendes bedeutet: "funktioniert nicht".

=> erhält die ListBox den Fokus ?
=> Wird etwas selektiert ?
=> Sind die Items "gebunden" ?
=> Hast "SelectedItem" ev. auch gebunden ?
=> ...

Beste Grüsse

Diräkt

M
Max1809 Themenstarter:in
67 Beiträge seit 2011
vor 11 Jahren

Es funktioniert! 😃 Die vorherige Antwort zeigt "meine Lösung" (inspiriert durch deine Antwort).

5.299 Beiträge seit 2008
vor 11 Jahren

wenn man an eine CollectionView bindet, dann kümmert die sich darum, ein anners Item zu selektieren, wenn das aktuelle gelöscht wurde.

Der frühe Apfel fängt den Wurm.