2017-07-24 72 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它,看起來不錯! –