..例如:有一个强调
strResult="controlName1.value * controlName2.value"
..我需要将其更改为controlName1.value * controlName2.value,以便我可以将输出作为双值
请回复
由于
答案 0 :(得分:0)
如果您正在使用Windows窗体,则会有一个索引器属性,它将子控件的名称作为字符串接受,如果找到匹配则返回控件。请参阅:Control.ControlCollection.Item
Property (String
)。aspx
所有UI框架中的直接替代方案是将String
映射到Control
,如下所示:
Function MapStringToControl(ctlName As String) As Control
Select Case ctlName
Case "controlName1"
Return controlName1
Case "controlName2"
Return controlName2
Case Else
Return Nothing
End Function
当然请注意,Windows窗体中没有.Value
属性 - 您需要执行Integer.Parse(ctl.Text)
之类的操作。
答案 1 :(得分:0)
这取决于它是什么类型的控制。例如,textbox
具有.Text
属性。 NumericUpDown
控件具有.Value
属性。
您需要做的就是将适当的属性转换为适当的类型。所以对于TextBoxes:
Dim result as Double = CDbl(txtFoo.Text) * CDbl(txtBar.Text)
对于NumericUpDown:
Dim result as Double = CDbl(nudFoo.Value) * CDbl(numBar.Value)
答案 2 :(得分:0)
大家好,感谢您的更新..我使用您的概念和其他一些代码片段编写了我自己的函数。我发布了结果
函数生成(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
再次感谢每一个人......期待未来一样