none
Listview auslesen und Bearbeiten/Updaten RRS feed

  • Frage

  • Hey,

    Heute mal wieder eine Listview Frage und zwar:

    Ich habe 4 Textboxen in die jeweils werte eingetragen werden. Wenn ich dann auf einen Button drücke (button_stadtübersicht_add) werden die Werte in die Listview eingetragen. Das passt auch alles nur jetzt möchte ich gerne das wenn ich doppelt auf einen Eintrag in der Listview klicke, die 4 werte wieder in die jeweiligen Textboxen eingetragen werden und ich dort angaben ändern kann und dann auf einen Update Button drücke (button_stadtübersicht_update) und dann der jeweilige Eintrag aktualisiert wird.

    Mein Code für das eintragen und löschen usw. der Listview:

    //Add
            private void button_stadtübersicht_add_Click(object sender, EventArgs e)
            {
                if (textBox_stadtübersicht_cityname.Text != "" && textBox_stadtübersicht_function.Text != "")
                {
                    ListViewItem lvi = new ListViewItem(textBox_stadtübersicht_cityname.Text);
                    lvi.SubItems.Add(textBox_stadtübersicht_function.Text);
                    lvi.SubItems.Add(textBox_stadtübersicht_maxed.Text);
                    lvi.SubItems.Add(textBox_stadtübersicht_ready.Text);
    
                    listView_stadtübersicht.Items.Add(lvi);
                }
                else
                {
                    MessageBox.Show("Bitte alle angaben ausfüllen!",
                    "Grepotool - Error (Fehlende Angaben)",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                }
            }
    
            //Remove
            private void button_stadtübersicht_remove_Click(object sender, EventArgs e)
            {
                if (listView_stadtübersicht.SelectedIndices.Count == 0)
                {
                    MessageBox.Show("Bitte wähle ein oder mehrere Objekte zum löschen aus.",
                    "Grepotool - Error (Fehlende Auswahl)",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                }
                else
                {
                    foreach (ListViewItem item in listView_stadtübersicht.SelectedItems)
                    {
                        item.Remove();
                    }
                }
            }

    Montag, 30. März 2015 13:43

Antworten

  • Hallo,
    das mit dem Doppelklick ist nicht ganz einfach, aber auch nicht sonderlich schwer wenn man weiß wie es geht.
    ListViewItem selected = null;
    
    private void listView_stadtübersicht_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        ListViewHitTestInfo lvhti = listView_stadtübersicht.HitTest(e.X, e.Y);//Item anhand der Click-Kooridnaten abfragen
        if (lvhti != null)//Ist dort ein Item?
        {
            if (lvhti.Item != null && lvhti.SubItem != null)
            {
                selected = lvhti.Item;
                //Den TextBoxen die Texte zuweisen (du musst natürlich die richtigen Namen nutzen)
                textBox1.Text = selected.SubItems[0].Text;
                textBox2.Text = selected.SubItems[1].Text;
                textBox3.Text = selected.SubItems[2].Text;
                textBox4.Text = selected.SubItems[3].Text;
            }
        }
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
        //Daten zurück speichern -> Update
        selected.SubItems[0].Text = textBox1.Text;
        selected.SubItems[1].Text = textBox2.Text;
        selected.SubItems[2].Text = textBox3.Text;
        selected.SubItems[3].Text = textBox4.Text;
    }


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Montag, 30. März 2015 14:04
    Moderator

Alle Antworten

  • Hallo,
    das mit dem Doppelklick ist nicht ganz einfach, aber auch nicht sonderlich schwer wenn man weiß wie es geht.
    ListViewItem selected = null;
    
    private void listView_stadtübersicht_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        ListViewHitTestInfo lvhti = listView_stadtübersicht.HitTest(e.X, e.Y);//Item anhand der Click-Kooridnaten abfragen
        if (lvhti != null)//Ist dort ein Item?
        {
            if (lvhti.Item != null && lvhti.SubItem != null)
            {
                selected = lvhti.Item;
                //Den TextBoxen die Texte zuweisen (du musst natürlich die richtigen Namen nutzen)
                textBox1.Text = selected.SubItems[0].Text;
                textBox2.Text = selected.SubItems[1].Text;
                textBox3.Text = selected.SubItems[2].Text;
                textBox4.Text = selected.SubItems[3].Text;
            }
        }
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
        //Daten zurück speichern -> Update
        selected.SubItems[0].Text = textBox1.Text;
        selected.SubItems[1].Text = textBox2.Text;
        selected.SubItems[2].Text = textBox3.Text;
        selected.SubItems[3].Text = textBox4.Text;
    }


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Montag, 30. März 2015 14:04
    Moderator
  • Hallo CaptainSikay,

    ist der Thread noch aktuell?

    Gruß

    Aleksander


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht,  kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 7. April 2015 14:58