• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBでシリアル通信がうまくいきません)

VBでシリアル通信がうまくいきません

このQ&Aのポイント
  • VBでシリアル通信がうまくいかない原因を教えてください
  • 現在、VBのシリアルポートメソッドを使用してRS232-C通信を行っていますが、別のPCから文字を送っても受信できません。キーボードを押しっぱなしにすると受信結果が表示されます。
  • ソースコードを記載していますので、詳しい方は教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

SerialPort1がデザイナで配置したSerialPortなら、そのプロパティを見てイベントのDataReceivedのところにその関数名があればOKです。 デザイナで配置した物でないならもちろん「イベントに登録する」というコードを書く必要があります。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

> TextBox1.Text = str TextBox1.Text = TextBox1.Text + str にしないと下のInvokeで常に一文字分で上書きされます。 複数バイトを受信していても、見た目には「常に最後の一文字だけが表示されている」ようにしか見えないでしょう。 > Private Sub SerialPort1_DataReceived(以下略) このメソッドはシリアルポートのイベントとして正しく登録されていますか? > Me.Invoke(dlgByte, ByteRead(0)) 引数はByteRead(i)でないとせっかく読んだデータの先頭しか渡りません。 あとAddDataの引数型がStringでデリゲートの引数型がIntegerで実際に渡している引数の型がByteという不整合っぷりが問題になっている可能性があります。 デリゲートの引数型をStringにして、Invokeで渡す引数をToString()でString変換してから渡す方が確実そうな……

Macchomu
質問者

お礼

ご回答ありがとうございます。 初心者なものでわからないもので >> Private Sub SerialPort1_DataReceived(以下略) > このメソッドはシリアルポートのイベントとして正しく登録されていますか? は前に宣言等が必要ということでしょうか?

関連するQ&A