Die Datenbank, mit der ich meine App für die "Prozent" -Spalte verbinde, verwendet Werte unter 1 (dh 15% werden als 0,15 in der Datenbank gespeichert) Format = ".00%", um die Werte in der DataGrid-Spalte anzuzeigen.Ändern des DataGrid-Zellenwerts während der Überprüfung
Frage ist, wie Benutzer richtig die Werte größer als 1 einfügen lassen - also 50 oder 50% in die Zelle schreiben - und in der Datenbank in 0,5 umwandeln.
Ich war auf der Suche nach DataGridViewCellValidatingEventHandler und hinzugefügt, um das Ereignis levDGV_PercentCellValidating, aber ich weiß nicht, wie die Werte sich ändern ...
private void levDGV_PercentCellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
string dataPropertyName = levDGV.Columns[e.ColumnIndex].DataPropertyName; // deliveryProcent
// Abort validation if cell is not in the "deliveryProcent" column.
if (!dataPropertyName.Equals("deliveryProcent")) return;
levDGV.Rows[e.RowIndex].ErrorText = "";
string testValue = e.FormattedValue.ToString();
char lastChar = testValue[testValue.Length - 1];
if (lastChar == (char)37)
{
//TODO: Remove % character from entered string
}
//TODO: divide the value by 100 and set as currentCell value
}
wie man die richtig validiert einem eingegebenen Wert zu transformieren (geteilt durch 100)
Nach der Lektüre dieses: https://stackoverflow.com/questions/4742960/datagridview-validation-changing-cell-value Ich denke, ich werde für CellParsing gehen ... – mallorn