よし、これがシナリオだ。私は電卓を作成していますが、(電卓の) ユーザーが複数のポイント (.) を追加できないようにしたいのは、明らかに 1.2.1 が実数ではないためです。入力しているテキスト ボックスに追加できるポイントは 1 つだけですか?
3 に答える
2
または、この種の目的にぴったりのMaskedEditボックスを使用できます
于 2011-04-06T00:07:50.203 に答える
1
Poma が指摘しているように、TextChanged イベントをリッスンして、入力ボックスの内容を調べることができます。次に、(基本的に) 2 つの選択肢があります。
- 入力をライブで修正します (つまり、エラーが発生しないようにテキストをリセットします)
- 何か問題があることを示す視覚的なフィードバックを提供する
私は通常、オプション 2 を使用して、エラー I を示します。
- 入力オプションを無効にします (つまり、[OK] ボタン)
- テキスト フィールドの背景色を明るい赤に変更します。
プログラムでテキストを変更すると、テキスト変更イベントも生成されるため、オプション 1 を使用する場合は注意してください。1 つの解決策は、ブール値のフラグを設定することです。
private bool changingText = false;
private void myTextBox_textChanged(...)
{
if(changingText)
return;
fixErrors();
}
private void fixErrors()
{
// Before changing myTextBox.Text, set the flag
changingText = true;
myTextBox.Text = ...
changingText = false;
}
他にもオプションがありますが、それらは最も一般的なものです。
編集:
もう 1 つのより良い解決策は、テキスト ボックスの OnKeyDown を処理することです。キーが必要なものでない場合は、単にイベントの Handled プロパティを true に設定します。どちらの方法でも機能します。
-- ダン
于 2011-04-05T23:59:34.887 に答える
0
イベントを使用TextChanged
してユーザー入力を検証できます
于 2011-04-05T23:49:45.647 に答える