Vb.net 仅文本框转换器

Vb.net 仅文本框转换器,vb.net,winforms,textbox,converter,Vb.net,Winforms,Textbox,Converter,我正在vb.net中为我的作业制作一个温度转换器。我知道换算方法等。。但问题是,我只需要使用两个文本框。一个是摄氏度,一个是法伦海特。每当我更新文本框的摄氏度时,文本框上的变化也会发生,当我更改farenheit的值时,摄氏度文本框也会根据farenheit的值而变化。我该怎么办 这是我目前正在做的 Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load If

我正在vb.net中为我的作业制作一个温度转换器。我知道换算方法等。。但问题是,我只需要使用两个文本框。一个是摄氏度,一个是法伦海特。每当我更新文本框的摄氏度时,文本框上的变化也会发生,当我更改farenheit的值时,摄氏度文本框也会根据farenheit的值而变化。我该怎么办

这是我目前正在做的

 Class Form1
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    If TextBox1.Focus() Then
        TextBox2.Clear()
        TextBox2.Text = (TextBox1.Text - 32) / 1.8
    ElseIf TextBox2.Focus() Then
        TextBox1.Clear()

        TextBox1.Text = (TextBox2.Text * 1.8) + 32
    End If
End Sub
End Class

谢谢你发布一些代码。在为两个文本框连接TextChanged事件处理程序后,我会这样做:

Private DegreesCChanging As Boolean = False
Private DegreesFChanging As Boolean = False

Private Sub DegreesF_TextChanged(sender As Object, e As EventArgs) Handles DegreesF.TextChanged
    If Not DegreesFChanging Then
        Dim Temperature As Double
        DegreesCChanging = True
        If Double.TryParse(DegreesF.Text, Temperature ) Then
            DegreesC.Text = ((Temperature - 32.0) / 9.0 * 5.0).ToString("0.##")
        Else
            DegreesC.Text = String.Empty
        End If
        DegreesCChanging = False
    End If
End Sub

Private Sub DegreesC_TextChanged(sender As Object, e As EventArgs) Handles DegreesC.TextChanged
    If Not DegreesCChanging Then
        Dim Temperature As Double
        DegreesFChanging = True
        If Double.TryParse(DegreesC.Text, Temperature ) Then
            DegreesF.Text = (Temperature / 5.0 * 9.0 + 32.0).ToString("0.##")
        Else
            DegreesF.Text = String.Empty
        End If
        DegreesFChanging = False
    End If
End Sub
有几件事需要注意

我正在使用TextChanged事件-只要用户键入 任何一个文本框中的内容,世界开始改变 我使用double.TryParse将数字转换为字符串。如果我不知道发生了什么,例如,TryParse调用返回False,我会在另一个文本框中插入一个空字符串。它工作得很好。 当用户在文本框中键入内容时,会导致TextChanged事件,强制将新文本输入另一个文本框-这将导致该控件的TextChanged事件。我使用两个布尔标志来防止这种情况。 我在ToString调用中使用自定义数字格式字符串来限制 精度精确到小数点后两位。
你应该解释一下你的应用程序使用了什么。WinForms、WPF、ASP、NET、Xamarin……?很抱歉是编程新手。WinForms..每当文本框的内容更改时,引擎都会调用WinForms文本框的TextChanged事件。您应该从这里开始,或者可以使用更懒惰的方法,每次焦点离开文本框时,使用验证事件处理程序执行计算。请展示您为获得更多帮助所做的努力,并作为提示,确保一个文本框中的更改不会触发另一个文本框中的更改,这会触发第一次泡沫冲洗的更改。如果你没有注意到,人们说的是写你的应用程序,发现问题,问我们如何解决。别只是问嘿,我有一些作业,你能帮我做吗?我的话题现在可以从暂停中删除吗?