Выражение в string
Имеется текстбокс. Пользователь вводит в него выражение (+-*/), и по кнопочке значение пишется в Label.
Есть ли аналог Eval в VB? Поискал по инету: пишут, что можно подключить к проекту script control, но я начинающий, не могу толком понять, что делать.
Спасибо.
Спасибо. Если можете, укажите на ошибку в этом коде.
Код:
Option Explicit On
Public Class Form2
Private Sub Form_Load()
objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
End Sub
Private objScript As Object
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim result As Object = objScript.Eval(TextBox1.Text)
Label1.Text = result
End Sub
End Class
Public Class Form2
Private Sub Form_Load()
objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
End Sub
Private objScript As Object
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim result As Object = objScript.Eval(TextBox1.Text)
Label1.Text = result
End Sub
End Class
Необработанное исключение типа "System.NullReferenceException" произошло в Microsoft.VisualBasic.dll
Дополнительные сведения: Не задана переменная объекта или переменная блока With.
Код:
Set objScript = CreateObject("MSScriptControl.ScriptControl")
Цитата: craftyfox
Код:
Set objScript = CreateObject("MSScriptControl.ScriptControl")
В моей, десятой студии, написано, что операторы Set u Let не поддерживаются.
Я вообще сомневаюсь, что у меня есть скрипт контрол.
Я скачал его, установил, зарегистрировал ocx библиотеку. Дальше я не продвинулся.
скрипт крнтрол у тебя есть, т.к. objScript.Language = "VBScript" проходит
попробуй
Dim result As String = objScript.Eval(TextBox1.Text)
Решилось все тем, что я перенес объявление objScript в клик по кнопке. И, т.к. при каждом клике будет создаваться объект, там же написал удаление.
Если есть более гуманный способ, напишите -_______-
Если кому еще надо:
Код:
Public Class Form2
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim result As String
Dim objScript As Object = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
result = objScript.Eval(TextBox1.Text)
Label1.Text = result
Erase objScript
End Sub
End Class
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim result As String
Dim objScript As Object = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
result = objScript.Eval(TextBox1.Text)
Label1.Text = result
Erase objScript
End Sub
End Class