DOBON.NET DOBON.NETプログラミング掲示板過去ログ

画面に文字を一文字ずつ表示する方法

環境/言語:[VB.NET 2008 EE]
分類:[.NET]

タイトル通りの質問です。
正確には、こちらのTipsにある

「文字列から一行ずつ読み込む」
「文字列から1文字取得する、文字列内の文字を列挙する」

このふたつを組み合わせて、一行の文字列から一文字を取得・表示させ
次に一行からニ文字目を流れるように表示させたいのですが、上手くいきません。

http://flash1234.net/script/textEffect/as27.html

こちらはFlashですが、ここのサンプルの上から二番目のような表示が理想なのですが……。

そもそも、やり方自体が間違っているんでしょうか?
どなたか教えて頂ければとても助かりますm(__)m
1文字ずつ表示したいということは分かりましたが、どのような方法で実現しようとしているのかが分かりませんでした。TextBoxやLabelなどのコントロールをお使いなのでしょうか?それとも、DrawStringで描画されているのでしょうか?どのような方法でうまくいかなかったのかを、出来ればコードを載せて、教えていただけますか?
管理人さんが指摘している通りですが

とりあえずTimerコントロールは使ったほうがいいかもしれません。
■No28361に返信(Natsumeさんの記事)
> http://flash1234.net/script/textEffect/as27.html
> こちらはFlashですが、ここのサンプルの上から二番目のような表示が理想なのですが……。

本当に 'このとおり' にしたいのであればですが、GIF アニメか、flv, swf を再生するコンポーネントを貼り付けるかしないと、(労力的に) 厳しいかと思います。
回答ありがとうございます。
コードと言えるものすら載せられない程、漠然としているのですが
一応、下記のような感じです……。

Label1(文字列を表示させる)

Timer(文字列表示速度)

変数a(文字列の一行を格納)
変数b(現在表示されている文字数のカウンタ)

・変数aに文字列の一行を格納
・Timer1の秒数毎に変数bに+1

と、ここまではぼんやりと考えているのですが
ここから先は何をしていいやらです。

GifやFlashはちょっと……という感じで。
簡単すぎて申し訳ないのですが、
大雑把には以下のような感じになるのではないでしょうか。

Dim a As String = "ようこそ わたしのホームページへ"
Dim b As Integer = -1

Private Sub Timer1_Tick(ByVal sender As Object, _
                        ByVal e As EventArgs) Handles Timer1.Tick
    If b < 0 Then
        '表示されている文字を消去
        Label1.Text = ""
    Else
        'Labelに1文字追加する
        Label1.Text += a(b)
    End If

    '次の位置を決定する
    If b < a.Length - 1 Then
        b += 1
    Else
        b = -1
    End If
End Sub
ありがとうございます!充分です!!
ここから色々弄っていこうと思います!!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板