我试图显示在文本框中输入的数字的平方根。当用户按下Q(大写)时,应显示平方根(在文本框中)。我确实设法获得了sqaure root,但问题是,当我按Q时,也输入了字母Q.例如,如果我在文本框中输入25并按Q,那么我得到Q5作为结果。有没有解决这个问题的工作?以下是我使用的代码。
Private Sub Textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(81) Then '81 for Letter Q
Dim root As Double = Math.Sqrt(Val(TextBox1.Text))
TextBox1.Text = root
End If
End Sub
答案 0 :(得分:1)
您可以添加此行
e.KeyChar = ""
在if语句中,它看起来像这样:
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(81) Then '81 for Letter Q
Dim root As Double = Math.Sqrt(Val(TextBox1.Text))
TextBox1.Text = root
e.KeyChar = ""
End If
End Sub
答案 1 :(得分:0)
为什么接受字符会使用ASCII值阻止所有字母
答案 2 :(得分:0)
通过事件抓住整件事:
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.q_pushed);
public void q_pushed(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Q)
{
//DoStuff
}
}
这应该做你需要的:)