史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   關於VB2008公分和英吋的轉換問題 (http://forum.slime.com.tw/thread245541.html)

hsia12 2009-03-30 08:47 PM

關於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
小弟是猜因為換算時小數的問題,因為二格同時內容在作改變,所以要同時符合
二行程式的條件,所以算出來才有問題,不知有沒有高手,能解救一下!!

先謝了!!

mini 2009-03-31 02:36 PM

你可以使用一個全域變數當作判斷旗標
分別應用在 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事件
造成循環

飛行船大大 2009-03-31 07:08 PM

引用:

作者: mini (文章 2132043)
你可以使用一個全域變數當作判斷旗標
分別應用在 TextBox1 與 TextBox2 的 GotFocus事件上

比如
在TextBox2 的 GotFocus事件寫上
flg_IsTextBox = 2

在TextBox1 的 GotFocus事件寫上
flg_IsTextBox = 1

的確是永遠呼叫不完.

還有另一寫法 , 就是表單上多設2個: option1 和 option2 讓 user可以選
3事件內 全部指令 加起來 只須7行指令即可ok

TextBox1的事件只須要5行指令如下

引用:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

If Option1 Then
TextBox2.Text = Format(Val(TextBox1.Text) / 2.54, "#######0.0####")
Else
TextBox2.Text = Format(Val(TextBox1.Text) * 2.54, "#######0.0####")
End If

End Sub


option1 的 click事件 內寫1行 呼叫:TextBox1_TextChanged
引用:

Call TextBox1_Change

option2 的 click事件 內也是寫1行:TextBox1_TextChanged
引用:

Call TextBox1_Change

執行畫面 我2分鐘後上傳. format 看樓主你自己須要 ~ 自己改改即可.

飛行船大大 2009-03-31 07:27 PM

huhuge.hp.infoseek.co.jp/p28/Pic1.gif

huhuge.hp.infoseek.co.jp/p28/Pic2.gif

hsia12 2009-03-31 11:01 PM

首先感謝二位的解答!!!:on_02::on_02:

按二位的方式都可得到答案,小弟也作出來了

不過如果按題意是只能用文字方塊的話,版大的方式更接近題意,

真是謝謝二位了


所有時間均為台北時間。現在的時間是 12:09 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1