![]() |
關於VB2008公分和英吋的轉換問題
各位高手,這是小弟遇的問題,不知該如何解,請知的人能教一下!!
題目是只用文字方塊二個,一個是公分,一個是英吋 而利用TextBox1_TextChanged的事件去解(不要用命令鈕) 也是我在第一個輸入數字時第二個文字方塊會自己換算成英吋, 在第二格輸入數字時,第一格會自動換算成公分... 以上是小弟寫的!! Public Class Form1 Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged TextBox2.Text = Val(TextBox1.Text) / 2.54 End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged TextBox1.Text = Val(TextBox2.Text) * 2.54 End Sub End Class 在執行時輸入時會出現一些定位上的問題,利如我要輸入50,他卻跳成05 小弟是猜因為換算時小數的問題,因為二格同時內容在作改變,所以要同時符合 二行程式的條件,所以算出來才有問題,不知有沒有高手,能解救一下!! 先謝了!! |
你可以使用一個全域變數當作判斷旗標
分別應用在 TextBox1 與 TextBox2 的 GotFocus事件上 比如 在TextBox2 的 GotFocus事件寫上 flg_IsTextBox = 2 在TextBox1 的 GotFocus事件寫上 flg_IsTextBox = 1 接著在 TextBox1 的TextChanged 事件第一行追加 寫上 if flg_IsTextBox <> 1 then Exit Sub TextBox2 同理 原理你可以設個中斷點,操作之後按F8以步進方式就可了解 當然方法不只如此 但原理都差不多 也就是避免 TextBox1呼叫TextBox2事件 而 TextBox2 又呼叫TextBox1事件 造成循環 |
引用:
還有另一寫法 , 就是表單上多設2個: option1 和 option2 讓 user可以選 3事件內 全部指令 加起來 只須7行指令即可ok TextBox1的事件只須要5行指令如下 引用:
option1 的 click事件 內寫1行 呼叫:TextBox1_TextChanged 引用:
引用:
|
|
首先感謝二位的解答!!!:on_02::on_02:
按二位的方式都可得到答案,小弟也作出來了 不過如果按題意是只能用文字方塊的話,版大的方式更接近題意, 真是謝謝二位了 |
所有時間均為台北時間。現在的時間是 12:09 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *