我想做的是拥有一个 Windows 窗体应用程序,一旦在文本框中写入一个数字并按下接受按钮,将打开另一个窗体,其中另一个数字写入另一个文本框中,第二个按钮将按下,它会显示第三种形式,应该只接受四位数字“+”“-”“*”“/”,每个数字代表一个基本的数学运算,但是,我目前面临两个问题。
对于前两个框,我能够做到它只允许数字,问题是,一旦写入数字,我就无法删除它,而且我可以输入多个“。”对于浮点数,这意味着我可以写像“5136....5.25”这样的数字,这显然会在最后计算完成时导致错误。我还没有找到限制那个“.”的方法。只有一个,我也无法修复删除或后退按钮。 这是我使用的代码。
'Button
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form4.n1 = TextBox1.Text
Me.Hide()
Form2.Show()
End Sub
'Textbox
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
e.Handled = Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or Asc(e.KeyChar = "8"))
End Sub
现在使用第三个窗体我有另一个问题,我需要限制它只接受“+”“-”“*”或“/”(只有其中一个,不能更多,也没有数字或字符)
我觉得这些问题的解决方案是一样的,我需要以某种方式限制“。”的数量。并且 simbols 只有一个,我需要将第三个框中的 simbols 限制为这四个。
有什么想法吗?另外,我是个新手,所以任何提示或解释都将不胜感激,即使它使答案更长
答案 0 :(得分:0)
我最近不得不处理与该问题相关的事情。我编写了一个子程序来检查插入到 de TetBox 中的字符,并根据情况允许我们输入或不输入。
在下面的代码中,我检查按下的键是否是点“.”。然后,我检查文本框上是否有前一个点。我使用 IndexOf
方法返回字符的位置。如果返回“-1”,则表示Textbox中没有点,可以输入。
If e.KeyChar = "." Then
If textBox.Text.IndexOf(".") = -1 Then
e.Handled = False
Else
e.Handled = True
End If
如果您在输入第一个点后尝试输入另一个点,则行 textBox.Text.IndexOf(".")
将返回一个与 -1 不同的值,因此我们将无法输入它。
关于删除按钮,我使用以下几行来管理控制键:
If Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
您可以尝试使用这种方法来限制第三种形式中的符号,更改(点)“。”对于您需要专门使用的密钥。