C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: メインフォームで宣言したシリアルポートを別のクラスで使いたい


(過去ログ 13 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■3861 / inTopicNo.1)  メインフォームで宣言したシリアルポートを別のクラスで使いたい
  
□投稿者/ れれれ (27回)-(2007/05/25(Fri) 16:59:05)

分類:[C# (Windows)] 

2007/05/25(Fri) 18:39:20 編集(投稿者)

こんにちはれれれです。

早速質問なのですが、

シリアル通信を使うアプリケーションを作っているのですが、
まず
  ・フォームデザイン上でシリアルポートのコンポーネントを貼り付ける
  ・メインフォーム(Mainclaas)のクラスで

using System.IO.Ports;

      public SerialPort serialPortPC_device;//変数名は上記で貼り付けたコンポーネント同じ名前
として
別のクラスで
  ・//シリアル通信通信用
   Mainclass comm;
    
   comm.serialPortPC_device;//このように書くとここで「このメンバは複数回宣言されています」と出る

上記のようになってしまいます。別のクラスにおいてメインフォームで作成したシリアル通信コンポーネントを使うにはどうすればいいのですか?

ご教示よろしくお願いします



引用返信 編集キー/
■3863 / inTopicNo.2)  Re[1]: メインフォームで宣言したシリアルポートを別のクラスで使いたい
□投稿者/ Jitta (339回)-(2007/05/25(Fri) 19:10:59)
No3861 (れれれ さん) に返信

まあ、マイクロソフトの設計がパルスイートなのですが。

シリアル ポートのクラスを、フォームに結びつける必要はないですよね?
コントロールを、フォームに置かないと使えない、なんてことは無いので、設計を見直した方がいいのではないかと思います。
引用返信 編集キー/
■3864 / inTopicNo.3)  Re[1]: メインフォームで宣言したシリアルポートを別のクラスで使いたい
□投稿者/ 渋木宏明(ひどり) (216回)-(2007/05/25(Fri) 19:55:12)
渋木宏明(ひどり) さんの Web サイト
>   ・フォームデザイン上でシリアルポートのコンポーネントを貼り付ける

ここで言う「コンポーネントを貼り付けたフォーム」がMainclass なら、この時点でメンバ変数が Visual Studio によって自動的に追加されています。

Mainclass.Designer.cs ファイル内を良く見れば確認できるはずです。

なので、自分で

>   ・メインフォーム(Mainclaas)のクラスで
>
> using System.IO.Ports;
>
>       public SerialPort serialPortPC_device;//変数名は上記で貼り付けたコンポーネント同じ名前

を書く必要はありません。(2重定義になります)

ただし、「コンポーネントを貼り付けた」ことによって自動追加されたメンバ変数は private 修飾されているので、他のクラスから参照することが出来ません。

フォームに貼り付けた SerialPort コンポーネントのプロパティの "Modiffiers" を private から public に変更すれば、他のクラスからフォームに貼り付けた SerialPort コンポーネントを参照することが出来ます。



引用返信 編集キー/
■3891 / inTopicNo.4)  Re[2]: メインフォームで宣言したシリアルポートを別のクラスで使いたい
□投稿者/ れれれ (29回)-(2007/05/28(Mon) 10:36:04)
> ただし、「コンポーネントを貼り付けた」ことによって自動追加されたメンバ変数は private 修飾されているので、他のクラスから参照することが出来ません。
>
> フォームに貼り付けた SerialPort コンポーネントのプロパティの "Modiffiers" を private から public に変更すれば、他のクラスからフォームに貼り付けた SerialPort コンポーネントを参照することが出来ます。

jittaさん、渋木さん返信ありがとうございます。

渋木さんの指導どおりにしてみると他のクラスから参照できました。
本当にありがとうございます

以上でこのトピックを解決済みとさせていただきます。
では失礼します
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -