0

我有一个列表框,其中使用代码输入了两列日期:

   'Press  to place value into Array
    Private Sub TxtMark_Enter(ByVal sender As System.Object, _
            ByVal e As KeyEventArgs) Handles TxtMark.KeyDown


    Dim Mark As Double
    Dim DataString As String

    If e.KeyCode = Keys.Enter Then

        If Double.TryParse(TxtMark.Text, Mark) = False Then
            MessageBox.Show(" You must enter a numeric value like 1 or 2")
            TxtMark.Clear()
            TxtMark.Focus()
            Exit Sub
        End If

        If Mark < 0 Then
            MessageBox.Show("Valid range is between 0 and 100, 7 would work " _
                & Mark.ToString & " Does not")
            TxtMark.Clear()
            TxtMark.Focus()
            Exit Sub
        End If



        If NumberOfScores < MaxEntries Then
            ScoreArray(NumberOfScores) = Mark

            DataString = (NumberOfScores + 1).ToString + ".  " + _
                NameArray(NumberOfScores).PadRight(15) + _
  Mark.ToString.PadLeft(5)
            Lstdisplay.Items.Add(DataString)
            NumberOfScores += 1
        End If
        TxtMark.Clear()
        TxtName.Clear()
        TxtName.Focus()
        Exit Sub

    End If

我想要做的是有一个标签,在输入数据时自动做一些标记。任何想法都会很棒

4

2 回答 2

0

解决方案是遍历所有条目并将值相加:

    Dim total As Double
    For Each s As String In ListBox1.Items
        total+= s.substring(...)
    Next
    Debug.WriteLine("The total is:" + total.ToString)

棘手的部分是从字符串中提取数值。

但是,如果将数据放入ListView控件中会容易得多。将值全部放在一列中。然后你不需要做子字符串来提取数值

于 2013-09-06T09:33:09.550 回答
0

一种想法是添加一个自定义扩展,该扩展返回字符串的数字部分,然后如上所述使用 Matt Wilko 的迭代。

要创建自定义扩展,请向您的项目添加一个类,如下所示:

Imports Microsoft.VisualBasic
Imports System.Runtime.CompilerServices
Namespace Extensions
Public Module ExtensionMethods
    <Extension()> _
    Public Function GetNumeric(ByVal source As String) As String
        'Takes the passed in string and returns the numeric part
        Dim ReturnString As String = ""
        For A = 1 To source.Length
            If IsNumeric(source.Substring(A, 1)) Then
                ReturnString += source.Substring(A, 1)
            End If
        Next
        Return ReturnString
    End Function

End Module
End Namespace

如果您随后在项目上导入 MyProject.Extensions,则可以使用 string.GetNumeric 返回代码的数字部分。

希望这对您(和其他人)有所帮助。

于 2013-09-16T09:10:48.593 回答