就像如下图所示的单位换算工具,在任意一个文本框中输入数据,其他文本框都能计算出来。
我用过textbox的keyup事件,但有个缺点,将焦点移到另一个文本框,按了键盘Ctrl键或其他键,它以当前文本框的值又重新计算原来的文本框。
就好比下图,如用keyup事件,在“千米/公里”中输入0.6,但按Tab键将焦点移到其他文本框,由于浮点数精度问题,原来的文本框可能变为0.599998。但我希望按Tab键,这些文本框的数字不再改变。只有改变数字时才重新计算。
图片传不上去,详见百度应用(帮帮单位换算):http://www.baidu.com/s?wd=%E5%8D%95%E4%BD%8D%E6%8D%A2%E7%AE%97&tn=ichuner_1_dg&ie=utf-8
------解决方案--------------------
textChanged可以实现
你只要在执行运算前,判断一下当前文本框是不是有输入焦点就行
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Focused Then
TextBox2.Text = TextBox1.Text * 3
End If
End Sub
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
If TextBox2.Focused Then
TextBox1.Text = TextBox1.Text / 3
End If
End Sub