2013-02-25 1 views
5

Come verificare se l'utente ha lasciato vuoto un controllo NumericUpDown, rimuovendo il valore su di esso? Così possibile riassegnare un valore di 0.Verificare se NumericUpDown è vuoto

+0

controllare la lunghezza della variabile - http://www.dotnetperls.com/string-length –

risposta

6
if(NumericUpDown1.Text == "") 
{ 
    // If the value in the numeric updown is an empty string, replace with 0. 
    NumericUpDown1.Text = "0"; 
} 
0
decimal d = 0 
if(decimal.TryParse(NumericUpDown1.Text, out d) 
{ 

} 
NumericUpDown1.Value = d; 
4

Potrebbe essere utile usare l'evento convalidato e chiedere la proprietà text

private void myNumericUpDown_Validated(object sender, EventArgs e) 
{ 
    if (myNumericUpDown.Text == "") 
    { 
     myNumericUpDown.Text = "0"; 
    } 
} 
0

Prova questo

if (string.IsNullOrEmpty(((Control)this.nud1).Text)) 
{ 
    //null 
} 
else 
{ 
    //have value 
} 
0

Se si w per vietare il valore vuoto per NumericUpDown, basta usare questa classe. Il suo effetto è che una volta che l'utente tenta di cancellare il valore di controllo con select-all + backspace key, il valore numerico effettivo viene nuovamente impostato. Questo non è davvero un fastidio poiché l'utente può ancora selezionare + una cifra numerica per iniziare a modificare un nuovo valore numerico.

sealed class NumericUpDownEmptyValueForbidder { 
    internal NumericUpDownEmptyValueForbidder(NumericUpDown numericUpDown) { 
     Debug.Assert(numericUpDown != null); 
     m_NumericUpDown = numericUpDown; 
     m_NumericUpDown.MouseUp += delegate { Update(); }; 
     m_NumericUpDown.KeyUp += delegate { Update(); }; 
     m_NumericUpDown.ValueChanged += delegate { Update(); }; 
     m_NumericUpDown.Enter += delegate { Update(); }; 
    } 
    readonly NumericUpDown m_NumericUpDown; 
    string m_LastKnownValueText; 

    internal void Update() { 
     var text = m_NumericUpDown.Text; 
     if (text.Length == 0) { 
      if (!string.IsNullOrEmpty(m_LastKnownValueText)) { 
       m_NumericUpDown.Text = m_LastKnownValueText; 
      } 
      return; 
     } 
     Debug.Assert(text.Length > 0); 
     m_LastKnownValueText = text; 
    } 
    }