目次
前
次
システム調整
これまで説明した内容で、ほぼアプリケーションは完成ですが
実際に使う場合には、決めなければならないことがあります。
COMポート初期化とテキストボックス派生クラスのオブジェクト
インスタンス初期化が必要です。
この2つの処理は、コンストラクタでフォームを生成する
ときに指定します。
指定内容を説明します。
COMポート初期化
COMポートを使うために、以下のプロトコルを指定します。
- 転送速度 4800bps
- データ長 8ビット
- ストップビット 1ビット
- パリティ なし
- フロー制御 なし
データ長、ストップビット、パリティはデザイン時の
プロパティ設定で指定します。
データ転送速度とフロー制御は、次のコードで記述します。
sciDTB.BaudRate = 4800 ;
//sciDTB.BaudRate = 38400 ;
sciDTB.RtsEnable = false;
sciDTB.DtrEnable = false ;
他に必要な内容をリストします。
- 受信バッファサイズ 8192
- デフォルトポート COM1
- 文字エンコード shift_jis
最初、文字エンコードを指定しなかったのでUniCodeに
なっていました。JISコードで送信された文字が、訳の
わからない文字になって、焦りました。
次のコードを付加します。
sciDTB.ReadBufferSize = 8192 ;
sciDTB.PortName = "COM1";
sciDTB.Encoding = System.Text.Encoding.GetEncoding("shift_jis");
まとめると、以下になります。
sciDTB.BaudRate = 4800 ;
//sciDTB.BaudRate = 38400 ;
sciDTB.RtsEnable = false;
sciDTB.DtrEnable = false ;
sciDTB.ReadBufferSize = 8192 ;
sciDTB.PortName = "COM1";
sciDTB.Encoding = System.Text.Encoding.GetEncoding("shift_jis");
オブジェクトインスタンス初期化
テキストボックスクラスの派生クラスを、別コードで
定義しているとして、GUIに必要な内容を指定します。
オブジェクトインスタンスとして、最低限必要な内容を指定します。
- ウィンドウ表示位置
- インスタンス名指定
- ウィンドウサイズ
ここまでに指定した内容を記述します。
rMyTextBox = new MyTextBox();
this.rMyTextBox.Location = new System.Drawing.Point(14, 140);
this.rMyTextBox.Name = "rMyTextBox";
this.rMyTextBox.Size = new System.Drawing.Size(104, 331);
newで生成しただけでは、どこに所属するオブジェクトインスタンス
か不明なので、thisを使い自分の支配下に置きます。
使い勝手を良くするために、次のプロパティを決定します。
- Tab指定なし
- 複数行表示を許可
- 垂直、水平スクロールバー付加
- 文字列の折り返し指定
- 幅、高さ指定
- 表示文字列クリア
指定した内容を付加します。
this.rMyTextBox.TabStop = false ;
this.rMyTextBox.Multiline = true;
this.rMyTextBox.ScrollBars = ScrollBars.Both ;
this.rMyTextBox.WordWrap = true ;
this.rMyTextBox.Width = 314;
this.rMyTextBox.Height = 140;
this.rMyTextBox.Text = "";
最後に、コントロールオブジェクトとして
アプリケーションに追加します。
this.Controls.Add(rMyTextBox);
まとめると、以下になります。
rMyTextBox = new MyTextBox();
this.rMyTextBox.Location = new System.Drawing.Point(14, 140);
this.rMyTextBox.Name = "rMyTextBox";
this.rMyTextBox.Size = new System.Drawing.Size(104, 331);
this.rMyTextBox.TabStop = false ;
this.rMyTextBox.Multiline = true;
this.rMyTextBox.ScrollBars = ScrollBars.Both ;
this.rMyTextBox.WordWrap = true ;
this.rMyTextBox.Width = 314;
this.rMyTextBox.Height = 140;
this.rMyTextBox.Text = "";
this.Controls.Add(rMyTextBox);
目次
前
次