Nel mio progetto c'è un controllo utente che include un Ctrl NumericUpDown, e il suo campo di valori valido è da 10 a 100,Come mantenere il valore non valido per NumericUpDown dopo aver perso lo stato attivo?
quindi se gli input dell'utente 200 in NumericUpDown Ctrl, quindi il suo valore sarà cambiato in 100 automaticamente dopo il focus è cambiato in altri ctrl, sembra un po 'curioso per il cliente, perché possono cliccare il pulsante OK dopo l'input 200 in NumericUpDown ctrl, hanno bisogno di una finestra di messaggio che indichi loro che il valore che hanno inserito non è compreso nell'intervallo.
Ma la domanda è il valore per NumericUpDown cambierà automaticamente dopo che lo stato attivo è cambiato se il valore inserito è fuori dal suo intervallo.
Quindi, come implementarlo?
Sameh Serag, questo è il codice che ho testato. Ho aggiunto un pulsante nel modulo ma non ho fatto nulla. Il risultato per me è dopo l'input 200 e clic sul pulsante, viene mostrata solo una messagebox con valore 100. Dopo aver immesso 200 e premuto il tasto tab, verrà visualizzato solo un messaggio con il valore 200 e il valore del testo in NumericUpDown verrà modificato a 100. Così curioso :-) Comunque grazie mille per il tuo aiuto! A proposito, la versione del framework .Net è 2.0 con sp2 per me.
public partial class Form1 : Form
{
private TextBox txt;
public Form1()
{
InitializeComponent();
txt = (TextBox)numericUpDown1.Controls[1];
txt.Validating += new CancelEventHandler(txt_Validating);
}
void txt_Validating(object sender, CancelEventArgs e)
{
MessageBox.Show(txt.Text);
}
}
Non credo che questo sia possibile, ma uno perché è un problema che ho colpito in passato troppo. Ho finito per tornare ai vecchi vecchi TextBox. –
+1 a Matt.I controlli NumericUpDown sono i controlli più disgustosi mai concepiti. Non ho mai osservato un utente in realtà facendo clic su quei piccoli pulsanti o usando i tasti freccia. Si limitano a digitare. E Dio ti aiuta se sei su un tablet. – Josh
@Carlos_Liu: Ho aggiornato la mia risposta di seguito dopo la modifica alla domanda. A proposito: ha funzionato per me in tutti gli scenari che hai descritto sopra. Provalo e facci sapere i risultati ;-) –