2012-06-27 610 views
0

我完全不熟悉編程,我決定做一個簡單的小計算器作爲我的第一個項目。從字符串「」轉換爲「Double」類型無效。在VB.NET中

我一直在得到「從字符串轉換」「鍵入'雙'無效。」每次我點擊ButtonPlus。

全碼: http://pastebin.com/JJxkg4fy

不遠的地方我有ButtonPlus代碼底部,我想將文本轉換在TextBox1中的兩倍。 真是令人困惑的是,當我試圖分裂時它不會發生。 當我按下分割按鈕時,沒有任何反應。 :/

Private Sub ButtonPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPlus.Click 
    If CInt(True) Then Val1 = CDbl(TextBox1.Text) 
    Opperan = "+" 
    TextBox1.Clear() 
    Funct.Text = "+" 
End Sub 

Private Sub ButtonDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPlus.Click 
    If CInt(True) Then Val1 = CDbl(TextBox1.Text) 
    Opperan = "/" 
    TextBox1.Clear() 
    Funct.Text = "÷" 
End Sub 
+2

爲什麼在世界上你有一個'CINT(真) '? – Ryan

+0

無論如何,你確定你已經在'TextBox1'中鍵入了一些東西嗎?另外,例如,爲他們提供更有意義的名字可以幫助捕捉錯誤,例如,無意中將「TextBox」拖到窗體上兩次。 – Ryan

+0

當您點擊ButtonDivide時,沒有任何反應,因爲ButtonDivide_Click被指定爲ButtonPlus的處理程序。你需要改變'Handles'子句。當你解決這個問題時,你可能會從兩個操作中得到相同的錯誤。 – ulty4life

回答

1

試試這個假設你想 「」 轉換爲0

Dim val1 As Double 

If Not Double.TryParse(TextBox1.Text, val1) Then 
    val1 = 0 
End If 

我想,我的VB是生鏽。

PS你會拿起東西.NET方面,而不是依靠傳統的VB6的東西,如CDbl等自己做了很多好處的

+0

「類型'System.Windows.Forms.TextBox'的值不能轉換爲'String'。」 這就是我在替換'If CInt(True)Then Val1 = CDbl(TextBox1.Text)'時得到的結果':/ –

+2

'TryParse'需要引用'TextBox1.Text'而不是'TextBox1'。給定一個字符串,'TryParse'嘗試將它轉換爲'Double'。如果由於無效字符而導致它不能返回'False'。如果成功,則返回「真」。 – ulty4life

+0

我可以發誓我已經輸入了,無論如何都固定爲後代。 –

相關問題