Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
べつclassのSubでtextBox1.textを取得したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30578#CommentId84335
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2021/1/13 18:40:08
> AddHandler g_SerialPort.DataReceived, AddressOf DataReceived
ここで使っている g_SerialPort の宣言はどうなっていますか?
もし、最初の回答の冒頭で述べた、
System.IO.Ports 名前空間の SerialPort クラスだとしたら、話が色々変わってきます。
SerialPort の DataReceived イベントに渡されるための Sub DataReceived は、
引数を 2 つもち、かつ、それぞれの引数のデータ型が
Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)
になっていなければなりません。
引数定義さえ正しければ、この Sub に Shared はあってもなくても良いですし、
スコープも Private でも Public でも構いません。
ただし、SerialPort クラスというものは独立したスレッドで処理されるものであるため、
上記の Sub DataReceivedHandler プロシージャーの中からは
フォームや TextBox への直接アクセスが一切禁止されます。
(最初の質問の冒頭で懸念していたのが、この点です)
一方、最初の質問にあった BarcodeReader クラスの方の Sub DataReceived() であれば、
そうした制限が無いので、この場所で TextBox の値を読み書きしても問題ありません。
Form とは別クラスなので、データの受け渡し方を考える必要はありますけれどね。