-1

含まれている番号(。)のみを入力したいこのテキストボックスがあります。たとえば、190.5です。

ただし、たとえば190.5gのテキストがある場合は、msgbox( "error")と表示されます。

私はどこかで見つけたこのコードを持っています

 Dim allDigit = pbox.Text.Trim.Length <> 0 AndAlso _
      pbox.Text.All(Function(chr) Char.IsDigit(chr))
        If Not allDigit Then
            MsgBox("Please input number only on price")
            pbox.Clear()
            Exit Sub
        End If

追加した場合。番号にはmsgboxが表示されているので、とにかくを含める必要があります。?

4

3 に答える 3

2

自分で文字列を引き離すのではなく、Decimal.TryParseを確認してください。

Dim value As Decimal
Dim yourString As String = "1234"
If Not Decimal.TryParse(yourString, value) Then
    MsgBox("Please input number only on price")
    pbox.Clear()
    Exit Sub
End If

小数点記号を表す文字は、OS の言語設定によって異なることに注意してください。アメリカ英語とイギリス英語ではピリオド、ドイツ語ではコンマになります。

于 2013-02-19T12:43:54.510 に答える
1

代わりにIsNumeric関数を使用してください

    If Not IsNumeric(pbox.Text) Then
        MsgBox("Please input number only on price")
        pbox.Clear()
        Exit Sub
    End If
于 2013-02-19T12:45:50.317 に答える
0

これは私が使用するC#の私のコードです

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar) 
            && !char.IsDigit(e.KeyChar) 
            && e.KeyChar != '.')
        {
                            //message box
            e.Handled = true;
        }

        // only allow one decimal point
        if (e.KeyChar == '.' 
            && (sender as TextBox).Text.IndexOf('.') > -1)
        {
                            //message box
            e.Handled = true;
        }
    }
于 2013-02-19T12:51:12.477 に答える