2016-07-01 6 views
0

Ich benutze diesen Code für Validierung ganzzahlige Eingabe auf Datagridview.CellValidating für nur kann Eingabe

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 
{ 
    if (string.IsNullOrEmpty(e.FormattedValue.ToString())) 
    { 
     MessageBox.Show("Cannot Empty!"); 
     e.Cancel = true; 
    } 
    else if (...) 
    { 
     MessageBox.Show("Only can input number!"); 
     e.Cancel = true; 
    } 
} 

und jetzt habe ich Probleme mit dem Code, den ich ein Punkte. Gibt es welche, die dir eine Idee geben können? ob die Verwendung Regex in diesen Bedingungen verwendet werden kann?

+0

[prüfen, ob die Zeichenfolge numerisch] (http://stackoverflow.com/questions/894263/how-do-i-identify-if-a-string-is-a-number) – nlloyd

Antwort

1

Verwenden Sie einfach int.Tryparse und rufen Sie eine Methode, etwa so, aber ich habe diesen Code nicht überprüft, nur ein kurzes Beispiel.

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 
    { 
     if (string.IsNullOrEmpty(e.FormattedValue.ToString())) 
     { 
      MessageBox.Show("Cannot Empty!"); 
      e.Cancel = true; 
     } 
     else if (!isNumeric(e.FormattedValue.ToString()) 
     { 
      MessageBox.Show("Only can input number!"); 
      e.Cancel = true; 
     } 

    } 

Legen Sie eine Methode irgendwo wie dieses

public static bool IsNumeric(string theNumber) 
    { 
     if (theNumber == null) throw new ArgumentNullException("theNumber"); 

     int n; 
     bool isNumeric = int.TryParse(theNumber, out n); 
     return isNumeric; 
    } 
+0

Ich habe es versucht. aber ich bekomme einen Fehler auf! IsNumerisch. – Underdog

+0

oh entschuldigung! Das ist meine Schuld, es stellt sich heraus, dass der Rat, den Sie gegeben haben, Erfolg hat. Dank bro ! – Underdog

1
int n; 
bool isNumeric = int.TryParse(e.FormattedValue.ToString(), out n); 

diesen Code setzen, bevor Ihr "wenn" und überprüfen isNumeric dann in else if Block

+0

Vielen Dank für Ihren Rat, aber immer noch Fehler auf! IsNumeric – Underdog

+0

können Sie die Fehlermeldung? vielleicht ist e.FormattedValue null –

+0

'! isNumeric' ist eine 'variable' aber wird gemocht eine 'methode' – Underdog