2017-07-24 28 views
-4

好的我在这里有一个奇怪的问题。我有一个类似于货币转换器的程序(它执行一个数学函数来产生一个值到另一个文本框中)。我希望它能够做的是识别您编辑的最后一个文本框(有4个),然后根据您输入的内容更新其余文本框,然后用户必须能够更改不同的文本框来更改所有文本框。如何用VB.NET创建类似谷歌风格货币转换器的东西

如果有人能让我开始如何做,甚至一些示例代码,将不胜感激,谢谢!

对不起,如果我没有意义,只要看看谷歌货币转换器,并认为与两个更多的可编辑框。

+1

只是看看[问]和[旅游]如何在这里发布问题.... – Plutonix

回答

0

如果我正确地理解了你,这可能是你想要的。

在表单类中,您有一个名为lastTextBoxChangedName的变量,它跟踪哪个文本框是最后编辑的。

接下来有一个事件处理程序,当四个文本框中的任何一个被改变时它将会触发。这仅更新lastTextBoxChangedName

当您编辑了一个文本框并选择了下一个,或者点击导致TextBox失去输入焦点的东西时,下一个事件处理程序就会执行。这看起来lastTextBoxChangedName看看哪个是最后编辑的文本框,你可以插入你的更新代码来替换Select Case块中的注释。

Public Class Form1 
    Dim lastTextBoxChangedName As String 

    Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged, TextBox4.TextChanged 
     lastTextBoxChangedName = sender.name 
    End Sub 

    Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus, TextBox4.LostFocus 
     updateTextBoxes() 
    End Sub 

    Private Sub updateTextBoxes() 
     Select Case lastTextBoxChangedName 
      Case "TextBox1" 
       'do updates appropriate to textbox1 changed 
      Case "TextBox2" 
       'do updates appropriate to textbox2 changed 
      Case "TextBox3" 
       'do updates appropriate to textbox3 changed 
      Case "TextBox4" 
       'do updates appropriate to textbox4 changed 
     End Select 
    End Sub 
End Class 

但是,如果你已经有单独的事件处理程序为每个文本框,不要添加第一个事件处理程序TextBox_TextChanged,只需添加一行..

lastTextBoxChangedName = sender.name 

到每个处理器。

+0

谢谢,我会试试看,看看hpow它,看起来不错! –