Datagridview [Frage / C#]

03/23/2012 15:57 FreewayC#1
Hallo,

ich brauche dringend eure Hilfe.

Bin dabei Daten (wie z.B. Namen / Adresse) in einer Datagridview abzuspeichern.
Dies mach ich ganz simple :
datagridview1.Rows.Add(name.Text);

// name.Text steht für die Text Box

Jetzt wurde der Name in die Datagridview eingefügt, nun möchte ich aber durch eine ComboBox den Name auswählen und durch eine weitere Text Box ändern.

ComboBox:

comboBox1.Items.Add(name.Text);

// Fügt den Namen zur ComboBox hinzu


Die ComboBox beihnaltet jetzt auch den Namen.

Jetzt kommt die ComboBox und die textBox2 ins Spiel.

Ich wähle nun durch die ComboBox den namen aus und schreibe in die textBox2 einen neuen Namen rein, nun sollte in der Datagridview der alte Name überschrieben werden.



Ich hoffe ihr habt mich einigermaßen verstanden und könnt mir helfen :)


freundlich Grüße
03/23/2012 16:03 jacky919#2
nicht [Only registered and activated users can see links. Click Here To Register...]:
[Only registered and activated users can see links. Click Here To Register...]
sondern [Only registered and activated users can see links. Click Here To Register...]:
[Only registered and activated users can see links. Click Here To Register...]
03/23/2012 16:50 FreewayC#3
Vielen Dank.
Ganz übersehen.

gruß
03/23/2012 18:10 Al Kappaccino#4
Code:
        private void button1_Click(object sender, EventArgs e)
        {
            //Add button
            dataGridView1.Rows.Add(textBox1.Text);
            comboBox1.Items.Add(textBox1.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Replace Button
            int index = comboBox1.SelectedIndex;
            dataGridView1.Rows.Insert(index, textBox1.Text);
            dataGridView1.Rows.RemoveAt(index + 1);
        }
Würde das mit 2 Buttons lösen.

Da ich keine Replace funktion gesehen habe, habe ich einfach Insert und Remove kombiniert.
03/24/2012 12:33 FreewayC#5
Danke hat mir schon weitergeholfen, nun hab ich aber noch ein Problem.
Wenn ich den Name ersetzte dann löscht es nicht nur den Namen, sondern die ganze Reihe.

Kleine Beispiel:

Name
Test1
Adresse
Milchstraße 99

Nach deinem Code steht dann nur noch da:

Name
(Neuer Name)
Adresse
(nicht mehr vorhanden)


freundliche Grüße
03/24/2012 13:53 Kraizy​#6
PHP Code:
DataGridView1.Rows(0).Cells(0).Value "neuer_name"
DataGridView1.Rows(0).Cells(1).Value "neue_strasse"
//
DataGridView1.Rows(0).SetValues("neuer_name")
//
DataGridView1.Rows(0).SetValues("neuer_name""neue_strasse"
03/24/2012 14:17 Al Kappaccino#7
Du hättest ja auch einfach sagen können, dass du 2 Spalten besitzt bzw. den C&P code einfach bisschen anpassen können :rolleyes:


Naja hier jedenfalls der Code funktionierend, wenn man davon ausgeht das man 2 Spalten besitzt, von denen die erste der Name und die andere die Adresse beinhaltet.
Code:
        private void button1_Click(object sender, EventArgs e)
        {
            //Add button
            dataGridView1.Rows.Add(name.Text,adresse.Text); 
            comboBox1.Items.Add(name.Text + "/" + adresse.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Replace Button
            int index = comboBox1.SelectedIndex;
            dataGridView1.Rows[index].SetValues(name.Text, adresse.Text);
            comboBox1.Items[index] = name.Text + "/" + adresse.Text;
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Damit Name und Adresse in den Textboxen geladen werden bei aufruf
            string s = comboBox1.SelectedItem.ToString();
            string[] str = s.Split(new Char[] { '/' });
            name.Text = str[0]; // Namen anzeigen
            adresse.Text = str[1]; // Adresse anzeigen
        }
03/25/2012 13:39 FreewayC#8
Vielen Dank :)
Hab noch ein ganz kleines Anliegen.

Ich habe eine Spalte "Geld", die hat den Wert 0
jetzt will ich über eine TextBox Geld hinzufügen z.B. 400

Jetzt sollte der Wert 400 drin stehen und wenn ich jetzt z.B. in die TextBox 800 reinschreibe, dann soltte der Wert 1200 in der Spalte Geld stehen (400+800)
03/25/2012 14:17 Kraizy​#9
hm, und wo genau ist jetzt das Problem beide Werte miteinander zu addieren?
03/25/2012 14:33 FreewayC#10
Bei mir steht dann in der Spalte 400800 und nicht 1200
03/25/2012 15:58 Kraizy​#11
Zeig mal deinen Code..du verbindest wahrscheinlich die beiden Strings
03/25/2012 18:10 Al Kappaccino#12
Code:
        private void button3_Click(object sender, EventArgs e)
        {
            //Geld adden
            int index = comboBox1.SelectedIndex;
            int geldnow = Int32.Parse(dataGridView1.Rows[index].Cells[2].Value.ToString());
            dataGridView1.Rows[index].Cells[2].Value = geldnow + Int32.Parse(geld.Text);
        }
Wenn in der 3ten Spalte das Geld steht, einfach den Wert der Zelle abfragen und als Integer konvertieren. Dann kann man es easy addieren.