アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.netでの質問です。serialportコントロールを使って232Cのデータを受信したらTimer1.Enabeled=Trueを実行するようにしているのですが、タイマーがスタートしません、何か、良い方法はありますでしょうか?

A 回答 (4件)

「タイマーが開始しない」と判断した理由をコード付きで示してください。


でないとなんとも言えません。

この回答への補足

ご回答ありがとうごさいます。
プログラムは、以外のようになります。(余計な箇所は省いてあります)
フォームを読み込んだ時にシリアルポートをオープンさせ、受信したらタイマー2をスタートせさて、カウントアップしたらHit!というメッセージを表示させますしかし、実際はタイマーがスタートせず、メッセージを表示しません。

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.
EventArgs) Handles MyBase.Load
       SerialPort1.Open()
   End Sub

   Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles
SerialPort1.DataReceived
       Timer2.Enabled = True
   End Sub

   Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Timer2.Tick
       MsgBox("Hit!")
   End Sub

補足日時:2011/04/08 12:36
    • good
    • 0

Enabled=false


で、実際スタートしたい場合は、Timer1.Start()
終了させる場合は、Timer1.End()を実行する。

でなかったっけ??
    • good
    • 0

手元の環境で試してみましたけど問題ないようです。



ここのイベントが発生していないだけではないですか。
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles
SerialPort1.DataReceived
Timer2.Enabled = True
End Sub
    • good
    • 0

この「省略したコード」ならTimerに正しくイベントが割り当てられていればちゃんと動作すると思います。


これで動作しないなら、SerialPort.DataReceivedイベントハンドラの起動自体がそもそも怪しいです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!