2つの方法で制限しようとしているテキストボックスがあります。
1-数値のみを許可し、小数は許可しません
2-=35未満の数値のみを受け入れたい
これを処理するために、次のイベントがあります。
private void TextBoxWorkflowCountPreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (!IsNumeric(e.Text, NumberStyles.Integer)) e.Handled = true;
}
public bool IsNumeric(string val, NumberStyles numberStyle)
{
double result;
return double.TryParse(val, numberStyle, CultureInfo.CurrentCulture, out result);
}
private void TextBoxWorkflowCountTextChanged(object sender, TextChangedEventArgs e)
{
if (!string.IsNullOrEmpty(textBoxWorkflowCount.Text) && Convert.ToInt32(textBoxWorkflowCount.Text) <= 35) e.Handled = true;
else
{
MessageBox.Show("Must not be higher then 35");
textBoxWorkflowCount.Text = "35";
}
}
これは表面上は完全に正常に機能します-ユーザーがデータをテキストボックスに貼り付ける場合(避けられないように見える)、またはさらに不思議なことに、ユーザーが数値を入力してからバックスペースを押す(テキストボックスを再び空白にする)場合は、メッセージボックスに通知しますそれらの値が>35であることが表示されます(実際にはそうではありませんが)。私がしなければならない場合に私が生きることができる最初の問題-しかし、2番目はゲームを壊すことであり、それを解決しようとして30分後、私はどこにも行きません。ヘルプ!