当前位置: 代码迷 >> VB Dotnet >> VB.NET怎么让多个文本框相互同时计算
  详细解决方案

VB.NET怎么让多个文本框相互同时计算

热度:162   发布时间:2016-04-25 02:20:56.0
VB.NET如何让多个文本框相互同时计算
就像如下图所示的单位换算工具,在任意一个文本框中输入数据,其他文本框都能计算出来。

我用过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
  相关解决方案