3

コントロール名がプログラム上の他のすべてのラベルと同じ場合に、このウィンドウのラベルを見つける方法を見つけようとしています。

WindowsForms10.STATIC.app.0.378734a
WindowsForms10.STATIC.app.0.378734a
WindowsForms10.STATIC.app.0.378734a

3 つのラベルはすべて同じ名前です。私が最も興味を持っているのは、進行状況の % カウンター (1%、2%、3% など) です。

いつでもそのラベルのキャプションを知らずに、そのラベルから(もちろんタイマーを使用して)値を取得するにはどうすればよいですか??

どんな助けでも素晴らしいでしょう!:o)

デビッド

4

2 に答える 2

0

明白な答えは、3つのラベルすべてからテキストを取得し、どれが「1%」、「55%」などのように見えるかを確認することです。

If strText Like "#%" Or strText Like "##%" Or strText = "100%" Then
' ...

あまり明白ではない答え(Windows APIが要件に対して扱いにくい場合)は、MicrosoftUIオートメーションAPIを使用することです。

于 2010-10-15T00:56:59.363 に答える
0

より完全なコード サンプルを探しているだけかどうかはわかりませんが、どうぞ。

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    'This block of code creates a list of all the labels on my form.
    'Replace this with code to get a list of labels on the form you are scraping
    Dim LblList As New List(Of Label)

    For Each ctrl As Control In Me.Controls
        If TypeOf ctrl Is Label Then
            LblList.Add(CType(ctrl, Label))
        End If
    Next
    'End

    Dim ProgressLblTxt As String = String.Empty
    For Each lbl As Label In LblList
        If lbl.Text.Contains("%") Then 'You could use several different criteria here as mentioned in the previous answer
            ProgressLblTxt = lbl.Text
        End If

        If ProgressLblTxt <> String.Empty Then Exit For
    Next

    'Do something with ProgressLblTxt
    MsgBox(ProgressLblTxt)
End Sub
于 2010-10-20T22:07:37.427 に答える