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
5
A
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;
}
}
controllare la lunghezza della variabile - http://www.dotnetperls.com/string-length –