Sto creando un'app UWP con diversi TextBox per immettere numeri. Per essere sicuro che possano essere inseriti solo numeri, uso l'evento TextChanging. Purtroppo non riesco a trovare alcuna documentazione su come utilizzare TextChanging in dettaglio per ignorare gli input errati.Utilizzo di UWP TextBox.TextChanging per ignorare i dati errati
una soluzione di lavoro per una TextBox è la seguente:
string oldText;
private void tbInput_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args)
{
double temp;
if (double.TryParse(sender.Text, out temp) || sender.Text == "")
oldText = sender.Text;
else
{
int pos = sender.SelectionStart - 1;
sender.Text = oldText;
sender.SelectionStart = pos;
}
}
Utilizzando questa soluzione avrei bisogno di un string oldText
per ogni TextBox e sia anche una funzione TextChanging per ciascuno di esso o molto di più di codice all'interno della funzione .
C'è un modo semplice per ignorare gli input "errati" nell'evento TextBox.TextChanging?
Sei a conoscenza di * InputScopes *? Puoi anche dare un'occhiata [a questa risposta] (http://stackoverflow.com/a/21193669/2681948) - forse ti aiuterà. – Romasz
Ho già impostato _InputScope_ su '" Number "' ma sul PC posso ancora inserire lettere ... Il tuo link sembra buono, proverò in questo modo. – daengl
Ci sono probabilmente un paio di modi in cui puoi gestire questa attività. Inoltre, probabilmente dovrai gestire il caso quando l'utente copia e incolla un testo. – Romasz