如何在 vb .Net 中执行每一行时增加 progressBar

how to Increment progressBar with each line execute in vb .Net

我要执行每行代码一个百分比增加进度条
我是这样做的:

If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
    For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
        AppActivate(ObjProcess.Id)
        AutoIt.Send("{F1}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
        AutoIt.Send("^{u}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
        AutoIt.Send("+{ENTER}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
        AutoIt.Send("^{u}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
        AutoIt.Send("^{ENTER}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()                   
        AutoIt.Send("^{s}")
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
    Next
End If

还有其他方法吗?
因为我觉得我的做法很可笑,很乏味。

jmc 表示如下:

If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
    For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
        AppActivate(ObjProcess.Id)
   
        Dim toSend = {"{F1}","^{u}","+{ENTER}","^{u}","^{ENTER}","^{s}"}

        For Each s in toSend
          AutoIt.Send(s)
          ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
          ItemRemoveProgress.Update()
        Next s

    Next
End If

或许可以将这 3 行变成一个方法:

    Sub X(s As String)
        AutoIt.Send(s)
        ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
        ItemRemoveProgress.Update()
    End Sub

那么你可以:

        If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
            For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
                AppActivate(ObjProcess.Id)

                Dim toSend = {"{F1}", "^{u}", "+{ENTER}", "^{u}", "^{ENTER}", "^{s}"}.ToList()
                toSend.ForEach(AddressOf X)
            Next
        End If