摆脱文本框中不需要的字符

时间:2011-02-17 08:51:30

标签: vb.net

我试图显示在文本框中输入的数字的平方根。当用户按下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

3 个答案:

答案 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
   }
}

这应该做你需要的:)