|
分類:[VB.NET/VB2005 以降]
2012/10/26(Fri) 10:07:40 編集(投稿者) 2012/10/26(Fri) 09:54:20 編集(投稿者)修正いたしましたすみません;; 2012/10/26(Fri) 09:51:34 編集(投稿者) 2012/10/26(Fri) 09:49:12 編集(投稿者) 2012/10/26(Fri) 09:48:20 編集(投稿者) 2012/10/25(Thu) 12:44:53 編集(投稿者) 2012/10/25(Thu) 12:43:59 編集(投稿者)
<pre><pre>使用ソフト:VisualStadio2008 使用 言語:VB 学校で作っててわからないところがあったので質問させていただきます。 指定した時間になるとtextBox1に『時間になりました』と右方向から左方向へ流れるテロップみたいにしたいのですが・・・ 10時10分0秒(10:10:0)に設定したとして時間になると2秒くらいだけ進み、その後は止まってしまいます。 -------------------------------------------------------------------------------------------- Public Class Form1 Dim dummytime(5) As Date Private Const LasTEXT As String = " 時間になりました " Dim j As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load j = 1
'読み込み時timer1を有効にする Timer1.Enabled = True
Call Timer2_Timer() ' 初期表示 With Me.Timer1 .Interval = 150 ' 更新時間の設定 .Start() End With End Sub
'画像を表示またはテロップ行うtimer1 Private Sub Timer1_timer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim dtNow As DateTime = DateTime.Now.ToString("hh:mm:ss") '今の時間をdtNowに入れる Dim sText As String ' 表示するメッセージ Static iCnt As Integer ' 次回の表示開始位置 Dim i As Integer ' ループ
'時間設定 『timeSerial:時,分,秒』 配列に入れる。 Dim dummytime(5) As Date dummytime(0) = TimeSerial(9, 50, 40) '1個目の時間設定 dummytime(1) = TimeSerial(10, 20, 10) '2個目の時間設定 dummytime(2) = TimeSerial(10, 30, 20) '3個目の時間設定 dummytime(3) = TimeSerial(10, 40, 30) '4個目の時間設定 dummytime(4) = TimeSerial(10, 50, 40) '5個目の時間設定
'iが4を超えるとき抜ける For i = 0 To 4
'設定iと今の時間を比べて同じだったら If dummytime(i) = dtNow Then Timer2.Interval = 1000 Timer2.Enabled = True
'テロップを流す処理 sText = Microsoft.VisualBasic.Strings.Mid$(LasTEXT, iCnt + 10) sText = sText & Microsoft.VisualBasic.Strings.Left$(LasTEXT, iCnt) Me.TextBox1.Text = sText ' メッセージの表示
' 次の表示開始位置を計算 iCnt = (iCnt + 1) Mod Microsoft.VisualBasic.Strings.Len(LasTEXT)
i = i + 1
End If Next End Sub Private Sub Timer2_Timer()
End Sub End Class
補足 上のコードにどのようなコードを付け加えたらいいのかいろいろ調べたのですがわからなかったので もしよろしければコードを教えてくださると助かります>< 下のコードは時間に関係なく、テストでボタン押すと流れるようにはできたのですが、これを時間がきたらテロップを20秒間くらい流れるようにする方法が調べても無理でした。 Public Class Form1
Dim dummytime(5) As Date Private Const LasTEXT As String = " 時間になりました"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'テスト(テロップ) Timer3.Enabled = True Timer3.Interval = 250 End Sub
Private Sub Timer3_tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick Dim sText As String ' 表示するメッセージ Static iCnt As Integer ' 次回の表示開始位置
'テロップを流す処理 sText = Microsoft.VisualBasic.Strings.Mid$(LasTEXT, iCnt + 1) sText = sText & Microsoft.VisualBasic.Strings.Left$(LasTEXT, iCnt) Me.TextBox1.Text = sText ' メッセージの表示
' 次の表示開始位置を計算 iCnt = (iCnt + 1) Mod Microsoft.VisualBasic.Strings.Len(LasTEXT)
End Sub End Class
お手数をおかけしますがご回答のほどよろしくお願いいたします<(_ _)> コメント入れてくれるとすごく助かります><</pre></pre>
|