ここから本文です

Visual Basic 2015(以下、vb 2015)を使っていて分からないことが出てきました。

tok********さん

2019/4/2622:42:44

Visual Basic 2015(以下、vb 2015)を使っていて分からないことが出てきました。

自分は現在、Windows8.1の64bitの環境でフォームアプリケーションを作成しています。そこで分からないことが出てきました。
『文章をスクロールさせ、それが終わると別の文章に切り替わってまた始めからスクロールする』(例えば、「こんにちは」という文章のスクロールが終わった後、今度は「こんばんは」という文章が流れてくる)というプログラムを組みたいのですが、中々できません。
『文章をスクロールさせる』と『文章を別のものに変える』という二つのことは個別にできましたが、これら二つを同時にtimerイベントで行うのができません。

以下に、それぞれの構文を記載します。

『文章をスクロールさせる』

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
With Label1
If (.Left + .Width) >= 0 Then
.Left -= 10
Else
.Left += .Width
End If


End With

End Sub


『文章を別のものに変える』
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim a() As String = New String() {"おはようございます", "こんにちは", "ごめんなさい"}

Randomize()
Label1.Text = a(Math.Floor(3 * Rnd()))

End Sub

何卒ご教授お願い致します。

閲覧数:
36
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

hih********さん

2019/4/2623:16:31

こんな感じでどうでしょうか。

Public Class Form1

Dim a() As String = New String() {"おはようございます", "こんにちは", "ごめんなさい"}

Public Sub New()
InitializeComponent()
Randomize()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

With Label1
If (.Left + .Width) >= 0 Then
.Left -= 10
Else
.Left = Me.Width
Label1.Text = a(Math.Floor(3 * Rnd()))
End If
End With

End Sub

End Class

スクロールが終わったら、ラベルをフォームの右端へ移動する。
その時に文字を入れかえる。

  • 質問者

    tok********さん

    2019/5/121:44:28

    回答ありがとうございます。返信が大変遅れてしまい申し訳ございません。

    この方法で行うと、自分の想定通りに動きました。ありがとうございました。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる