2015-09-17 53 views
-2

我抓住了一些代碼,防止用戶將非數字輸入到文本框中,並用它monkey一下,試圖讓它包含小數點的例外。它沒有工作,所以我想我只是把代碼放回原來的樣子,因爲我還不知道如何解決這些問題。小數點不應該是

奇怪的是,只要我把代碼恢復正常,它突然開始做做我最初想要的東西,即允許用戶鍵入一個十進制文本框。如果我能理解,爲什麼以溼婆的名義,我的小程序正在做一些沒有編程的事情,這將是非常好的。

我以某種方式生出真正的AI並開始了奇點嗎?

EDIT(爲了清楚起見):

  • 我是一個總的初學者。
  • 我發現這個代碼只允許將數字, 退格和刪除添加到文本框中。
  • 我改變了它,對它做了什麼做了假設,以便它也允許有一個小數點。
  • 這沒有奏效。
  • 我將代碼返回到我如何找到它。
  • 只有在這一點後,它纔開始允許小數點。
  • 這沒有意義,因爲它現在正在做一些不在代碼中的東西。
  • 將代碼放入Visual Studio時,是否發生了同樣的情況?
  • 如果是這樣,爲什麼會發生這種情況?
  • 世界即將結束,因爲儘管有空間,時間和邏輯的所有規則,我的計算機正在解釋我的願望並執行它們嗎?

    Public Class Form1 
        Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress 
    
         If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = Chr(Keys.Back) And Not e.KeyChar = Chr(Keys.Delete) Then 
    
          e.Handled = True 
          MessageBox.Show("numbers only", "baleted") 
    
         End If 
    
        End Sub 
    End Class 
    
+0

這個問題很不清楚,你可以試着準確地說明問題是什麼以及你對哪部分代碼感到困惑?如果你不能重現問題,那麼這個問題就是主題。 –

+0

您應該深入瞭解幫助頁面(以及一些問題/答案),以瞭解此處的預期格式。 PS:在文本中所有怪異的部分( - >最好避免在將來),我最喜歡的一個是「猴子」(?!) – varocarbas

+1

小數點不是一個數字。不是退格鍵或刪除鍵。所以你的代碼拒絕它是完全正常的。這樣做沒有多大意義,一旦你解決了這個問題,你仍然不會拒絕像1.2.3.4這樣的無效輸入。而且,要防止二十億人使用逗號而不是一段時間來使用你的程序。改用Validating事件,調用Decimal.TryParse()。 –

回答

0

我錯過理解的你的問題。我對它做了一些修改。我的錯!

Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress 
    If (e.KeyChar = "." OrElse e.KeyChar = Chr(Keys.Back) OrElse IsNumeric(e.KeyChar)) Then 
     e.Handled = False 
    Else 
     e.Handled = True 
    End If 
End Sub 

不是最漂亮的事情我曾經barfed出來,但基本上這將檢查按下的鍵是一個小數或後部空間,並允許這些,我表現出兩種不同的方式,你可以在我的代碼比較e.KeyChar 。如果它不是這些鍵中的任何一個,它將使用IsNumeric檢查它是否是一個數字。如果沒有這些東西,它會忽略它。不是我最好的工作,但你可以建立在這個基礎上,讓它成爲你自己的,做得更漂亮。

e.Keychar是在按鍵事件發生時收集的信息。您可以使用e.KeyChar比較鍵盤上按下的任何按鈕,並基本上按照每個按鍵定製您的文本框。我希望這可以讓你開始正確的道路。

一切都失敗了,在e.KeyChar這樣的代碼中搜索關鍵詞時,會發現很多信息。

微軟通常會做一個很像e的解釋工作。 KeyChar和e。 Handled

祝你好運!

+0

是的,我發現官方網站上的文檔是一個完整的噩夢。這可能是因爲我的小編程經驗是在Max/MSP中,它專門爲音樂人而不是程序員構建。微軟似乎認爲進入Visual Basic的人已經是程序員;不完全不合理,但對我來說非常沮喪。 – compyouter

相關問題