2016-05-09 11 views
2

これは負の値と文字を受け入れる理由を理解できません。なぜTextBoxの検証が機能しないのですか

私のコードは次のとおりです。

private void txtLifeMonths_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!Char.IsDigit(e.KeyChar) && (e.KeyChar == '.') && (e.KeyChar >= 0) && (e.KeyChar != (char)Keys.Back)) 
     e.Handled = true; 
} 

答えて

1

あなたが||で最初&&オペレータを交換しても、あなたが望むよう、それが動作する必要がありますあなたのif文の最後にそれを移動する必要があります。このように:

private void txtLifeMonths_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!Char.IsDigit(e.KeyChar) && (e.KeyChar >= 0) && (e.KeyChar != (char)Keys.Back) || (e.KeyChar == '.')) 
     e.Handled = true; 
} 
+0

Yaahはそれがうまくいきましたが、どうして私は&&または&を置き換える必要がありましたか? –

+0

@testtest ...第1オペランドで '.'を検証する第2オペランドを評価したくないためです。 2番目のオペランドがtrueと評価された場合、 'e.Handled'は' true'になります。 –

関連する問題