我有一个来自用户界面的字符串输出,如下所示
strFormula ="gridControlName.Rows(i).cells("C1").value *
gridControlName.Rows(i).cells("C2").value"
如果我写代码
dblRes=gridControlName.Rows(i).cells("C1").value *
gridControlName.Rows(i).cells("C2").value
它会给出结果..但由于它是一个字符串,我无法得到结果
如何从上面的字符串中删除双引号并获取在网格单元格中输入的值??
答案 0 :(得分:0)
我不认为有一种'简单'的方法可以做到这一点,因为VB.Net没有像其他语言一样的“eval()”。但是,它确实支持运行时编译。以下是一些可以帮助您的文章:
两者都旨在比仅执行单行代码更健壮,允许用户输入自己代码的整个文本框,但应该给你一些方向。两者都包括样本项目。
答案 1 :(得分:0)
大家好,感谢您的更新..我使用您的概念和其他一些代码片段编写了我自己的函数。我发布了结果
Function generate(ByVal alg As String, ByVal intRow As Integer) As String Dim algSplit As String() = alg.Split(" "c)
For index As Int32 = 0 To algSplit.Length - 1
'algSplit(index) = algSplit(index).Replace("#"c, "Number")
If algSplit(index).Contains("[") Then
Dim i As Integer = algSplit(index).IndexOf("[")
Dim f As String = algSplit(index).Substring(i + 1, algSplit(index).IndexOf("]", i + 1) - i - 1)
Dim grdCell As Infragistics.Win.UltraWinGrid.UltraGridCell = dgExcelEstimate.Rows(intRow).Cells(f)
Dim dblVal As Double = grdCell.Value
algSplit(index) = dblVal
End If
Next
Dim result As String = String.Join("", algSplit)
'Dim dblRes As Double = Convert.ToDouble(result)
Return result
End Function
再次感谢每一个人......期待未来一样