Hallo zusammen,
ich habe folgendes Problem:
Mit Hilfe der untenstehenden foreach durchlaufe ich jede Zeile eines DGV, um nach bestimmten Werten zu suchen und diese in Variablen abzuspeichern. Dabei sollen in einem Fall (3. if) die übernommenen Zeilen markiert werden. Klappt auch alles einwandfrei (im Debugger ersichtlich, dass BackColor verändert wird). Nur die Markierung der 1. Zeile verschwindet wieder, sobald die nächste Zeile mit einer Übereinstimmung gefunden wurde. Wird eine 3. Zeile mit einer Übereinstimmung gefunden, bleibt die bisherige Markierung bestehen und zusätzlich wird die 3. Zeile markiert. Dieses Problem bezieht sich dann scheinbar nur auf die 1. Zeile.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| foreach (DataGridViewRow row in grdDaten.Rows) { if (cbxVerbautInAnderenProjekte.Checked == false) { if ((row.Cells["BestelltFürProjekt"].Value.ToString() == cbxBestelltFuer.Text) && (row.Cells["WagMenge"].Value != DBNull.Value)) { bestelltFuerSumme = bestelltFuerSumme + (Convert.ToDecimal(row.Cells["WasWarenwert"].Value) * Convert.ToDecimal(row.Cells["WagMenge"].Value)); }
if ((row.Cells["BestelltFürProjekt"].Value.ToString() == cbxBestelltFuer.Text) && (row.Cells["VerbautInProjekt"].Value.ToString() == cbxVerbautIn.Text) && (row.Cells["WagMenge"].Value != DBNull.Value)) { verbautInSumme = verbautInSumme + (Convert.ToDecimal(row.Cells["WasWarenwert"].Value) * Convert.ToDecimal(row.Cells["WagMenge"].Value)); row.DefaultCellStyle.BackColor = Color.LightGray;
}
} else if (cbxVerbautInAnderenProjekte.Checked == true) { if ((row.Cells["BestelltFürProjekt"].Value.ToString() == cbxBestelltFuer.Text) && (row.Cells["VerbautInProjekt"].Value.ToString() != cbxBestelltFuer.Text) && (row.Cells["VerbautInProjekt"].Value != DBNull.Value) && (row.Cells["WagMenge"].Value != DBNull.Value)) { bestelltFuerSumme = bestelltFuerSumme + (Convert.ToDecimal(row.Cells["WasWarenwert"].Value) * Convert.ToDecimal(row.Cells["WagMenge"].Value)); row.DefaultCellStyle.BackColor = Color.LightGray; }
}
bindingsource.Filter = String.Format("Convert(BestelltFürProjekt, System.String) LIKE '%{0}%'", cbxBestelltFuer.Text);
}
if (cbxVerbautInAnderenProjekte.Checked == false) { txbSummeBestelltFuer.Text = Convert.ToString(bestelltFuerSumme); txbSummeVerbautIn.Text = Convert.ToString(verbautInSumme); txbSummeGesamt.Text = Convert.ToString(bestelltFuerSumme - verbautInSumme); } else if (cbxVerbautInAnderenProjekte.Checked == true) { txbSummeGesamt.Text = Convert.ToString(bestelltFuerSumme); } } |
Jemand eine Idee, wo mein Fehler liegen könnte?
Gruß
Koto