文字列をテキストボックスにスクロールさせる – プログラミング – Home

文字列をテキストボックスにスクロールさ...
 
通知
すべてクリア

文字列をテキストボックスにスクロールさせる


ケレル
 ケレル
(@ケレル)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

タイマーを使用して、文字列をテキストボックス①に入力し、ボタンを押すとテキストボックス
②に文字列が右から左にスクロールさせ、さらにテキストボックス①の文字列を変更してボタン
を押した場合、前の文字列が流れ終わってから新しい文字列が流れるようにさせるにはどうした
らいいでしょうか?

ぜひ知恵をお貸し下さい。おねがいします。


引用解決済
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

とりあえず、タイマーでスクロールさせるソースです。
ご参考までに。

Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Dim s As String
s = Text1.Text
If s = " Then
Timer1.Enabled = False
Exit Sub
End If
s = Right(s, Len(s) - 1)
Text1.Text = s
End Sub


返信引用
ケレル
 ケレル
(@ケレル)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

ありがとうございます。早速試してみました。しかし、テキストボックスが右揃えのせいか、先
頭の文字から消えていくだけのようです。そしてボタンを押さない限りスクロールしつづけたい
ので、もう一度教えてください。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

自分でも考えて下さいね。

Private Sub Command1_Click()
Timer1.Interval = 100
Timer1.Enabled = Not (Timer1.Enabled)
End Sub

Private Sub Form_Load()
Text1.Text = + Text1.Text
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()

Dim s, s2 As String

s = Text1.Text

If s = " Then
Timer1.Enabled = False
Exit Sub
End If

s2 = Left(s, 1)
s = Right(s, Len(s) - 1) + s2

Text1.Text = s

End Sub


返信引用
ケレル
 ケレル
(@ケレル)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

テキストボックスの大きさに合わせてスクロールさせることはできないのでしょうか?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

できます。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

仕事が一段落したので現実逃避を。

テキストボックスに入る文字数を把握しておけば、
スペースの個数を調節することで御要望に近いものができます。

どんな文字列、フォント、テキストボックスのサイズにも対応しようとすると、
VBの機能のみでのやり方を私は知りません。多分ないと思います。

テキストボックスのサイズや、あるフォントである文字列を表示した時のサイズなどは、
APIという関数群を使うと自由に取得できますが、VBに比べて大分難しいです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました