Использование формул в ячейках DataGridView - Visual Basic .NET
Формулировка задачи:
Собственно, нужно производить вычисления прямо в заполняемой ячейке датагрида, примерно как в экселе. Была идея перебора введенного выражения по символам математических операций (+, -, *, /), но тогда встает вопрос с вводом самих этих символов в переменную, которая заменит содержимое ячейки. Есть какой-либо способ засунуть выражение ячейки в переменную, чтобы переменная считала его не как текст, а как собственную формулу и вычислила результат?
Решение задачи: «Использование формул в ячейках DataGridView»
textual
Листинг программы
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DGV.Rows.Add("2+2")
DGV.Rows.Add("2+2*(3+7)")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim obj = CreateObject("MSScriptControl.ScriptControl") : obj.Language = "VBScript"
For Each row As DataGridViewRow In DGV.Rows
Try
row.Cells(1).Value = Val(obj.Eval(row.Cells(0).Value))
Catch ex As Exception
row.Cells(1).Value = "#ошибка"
End Try
Next
End Sub
End Class