2016-09-18 4 views
-1

Наше приложение очень велико, и мы много используем метод VAL, чтобы обеспечить правильное преобразование данных в текстовые поля в соответствующие номера. Однако теперь мы столкнулись с несколькими проблемами. Например, если кто-то пишет 25 500, функция VAL вернет 25 вместо 25500. Похоже, что это ожидаемое поведение, поскольку метод VAL прекращает свое действие, как только он находит неконвертируемый символ, например, запятую.Conversion.VAL method - Global Hook

Я хотел бы знать, есть ли способ иметь глобальный крючок для этого метода, который я могу создать в своем приложении, так что всякий раз, когда я вызываю метод VAL из своего приложения, он должен вызывать мой определенный метод, а не вызов из пространства имен Microsoft.Visualbasic.

спасибо

ответ

0

С текстовым полем кнопкой и метка на форме это, кажется, сделать трюк. Сделайте конвертировать sub и назовите его.

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Dim result, middle As String 
    Dim newresult As Double 
    If TextBox1.Text Is Nothing Then 
     MsgBox("Empty TextBox!") 
    End If 
    result = (TextBox1.Text) 

    middle = result.Replace(",", String.Empty) 

    newresult = Val(middle) 
    Label1.Text = newresult.ToString 
    TextBox1.Text = Nothing 
End Sub 

Надеюсь, это поможет. newresult сохраняется как двойной для дальнейшего использования, и значение отображается только для ясности в этом примере

+0

Привет, спасибо за ваш ответ, но это НЕ я ищу. Мне нужно какое-то глобальное переопределение, так что всякий раз, когда я вызываю метод VAL в любом месте приложения, он должен вызывать мой пользовательский метод. Я знаю, что замена запятой или других значений (например, $ sign) принесет мне правильный результат, но я использовал буквально тысячу тысяч раз, так что заменить их все невозможно. Единственное возможное решение, которое я вижу, - глобальный подход к методу. –

 Смежные вопросы

  • Нет связанных вопросов^_^