-1
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

    If Label1.Text.Length = 13 Then
        Label1.Text = "Working magic."
    ElseIf Label1.Text.Length = 14 Then
        Label1.Text = "Working magic.."
    ElseIf Label1.Text.Length = 15 Then
        Label1.Text = "Working magic..."
    ElseIf Label1.Text.Length = 16 Then
        Label1.Text = "Working magic"
    End If

End Sub

コードは基本的にプログレッシブ文字列として機能し、500 ミリ秒ごとにドットが文字列に追加され、3 つのドットでリセットされます。

より多くのドットを実行したい場合は、無数のコード行を記述する代わりに、プロセスを自動化するとよいでしょう。

4

6 に答える 6

2

擬似コード:

len = Label1.Text.Length - 12
str = "Working magic"

while(len>0 && len<4){
    str = str & "."
    len--;
}
Label1.Text = str
于 2013-09-04T22:49:53.430 に答える
2

コードを短くしたい場合は、次のようにすることができます。

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        (Label1.text += ".").Replace("....","")
End Sub

しかし、短い方が良いとは限りません。

編集:申し訳ありませんが、私の心はC#にまっすぐに行きます。ここにいくつかのVBがあります::

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
         Label1.text = (Label1.text + ".").Replace("....","")            
End Sub
于 2013-09-04T23:05:12.390 に答える
1

ここで生成されたようなアニメーション GIF の使用を検討してください: http://www.ajaxload.info/

その他のオプションについては、Google 検索をお試しください: 「アニメーション GIF ジェネレーター」

画像ボックスで GIF を使用し、.Enable/.Visible を使用して管理します。

メイン スレッドがビジー状態の場合、アニメーションが停止する可能性があります。おそらく、上記のケースにも当てはまります。

于 2013-09-04T23:52:39.807 に答える
0

印刷するドット数をグローバル変数として保持し、タイマー イベントが呼び出されるたびにこの値をインクリメントし、上限に達した場合はリセットします。

現在のカウントに基づいてドットの文字列を作成し、静的ラベルに追加します

Private dotCount As Integer = 0
Const MAX_DOTS = 3 


Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    if dotCount > MAX_DOTS Then
        dotCount = 0
    End If
    Label1.Text = "Working magic" & new String(".", dotCount)
    dotCount = dotCount + 1
End Sub

より多くのドットを印刷したい場合は、上限として使用される定数 (MAX_DOTS) を変更するだけです

于 2013-09-04T22:59:21.637 に答える