正在研究VB的ASP.NET项目的学生,该项目试图限制用户使用CASE语句在文本框中输入任何可接受的数字,但我一直遇到System.EventArgs错误。
我的代码:
Protected Sub ValueBox1_TextChanged(sender As Object, e As EventArgs) Handles ValueBox1.TextChanged
Select Case e.KeyChar
Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", vbBack
e.Handled = False
Case Else
e.Handled = True
End Select
End Sub
错误='KeyChar'和'Handled'不是'System.EventArgs'的成员
我尝试将其更改为KeyPress事件
(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)Handles TextBox1.KeyPress
但是随后找不到消息更改为“ KeyPress”。我知道我已经接近了,但是尝试了许多其他更改和建议,感觉就像我在转圈。
答案 0 :(得分:0)
您注意到, else{
document.getElementById(i).innerHTML = ABCD[i] + AnswerArray[rngIndex[i]];
if (rngIndex[i] == 3) {
// Notice that the actual call to Correct is wrapped:
document.getElementById(i).addEventListener("click", function(event){
Correct(event, this.id);
});
}
else{
// Notice that the actual call to Incorrect is wrapped:
document.getElementById(i).addEventListener("click", function(){
Incorrect(this.id);
});
}
i++;
}
} //end of a for loop
} //end of a function
function Correct(event, id){
alert('good nice');
document.getElementById(id).removeEventListener("click", Correct(this.id));
drawClock();
}
function Incorrect(event, id){
incorrect++
alert(incorrect + " incorrect")
document.getElementById(id).removeEventListener("click", Correct(this.id));
}
类型(所有其他EventArgs
的基本类型)不包含<Something>EventArgs
属性(实际上根本没有属性)。
服务器端.KeyChar
事件在Web应用程序中无用。
因此,您的选择是在客户端(在浏览器中)检查输入,并在服务器端进行额外的验证。
KeyPressed
呈现<asp:TextBox ID="txtNum" runat="server" TextMode="Number" min="0" max="20" />
允许数字,<input name="txtNum" type="number" id="txtNum" min="0" max="20">
+, -, .
验证更改后的 输入,不允许在错误修复之前提交表单。
使用javascript检查客户端的每个按键。
<asp:TextBox runat="server" TextMode="SingleLine" ID="txtNum2" />
<asp:RangeValidator runat="server" ID="valNum2" ControlToValidate="txtNum2" Display="Dynamic"
ErrorMessage="Numbers only" MaximumValue="20" MinimumValue="0" Type="Integer"></asp:RangeValidator>
另外在服务器端检查/验证输入。
<asp:TextBox runat="server" ID="txtNum3" OnTextChanged="txtNum3_TextChanged" onkeydown="return checkKey(event)" />
<script>
function checkKey(evt) {
if ('0123456789'.indexOf(evt.key) == -1)
return false;
return true;
}
</script>
答案 1 :(得分:-1)
在经典模式“这是我之前准备的那个”中...
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If Not (e.KeyChar >= "0" And e.KeyChar <= "9") Then
e.KeyChar = Chr(0)
End If
End Sub
在您的帖子中,您将ValueBox1
换成TextBox1
。 KeyChar
对通用EventArgs
无效,但对特定的KeyPressEventArgs
有效。
如果这在您的上下文中不起作用,请检查您的解决方案引用,因为该代码过去对我有用。