人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual C#でシリアル送信ソフトを作成しています。
Form1でComboBoxで通信設定を選択させていますが、
Form1上のButton1を押すとForm2が開き、そのForm2のComboBoxにて通信設定をさせようと考えています。
変更後
Form1:
public static int baudrate;
private void button3_Click(object sender, EventArgs e)
{
serialPort1 = new SerialPort("COM1", baudrate, parity, databits, stopbits);
serialPort1.Handshake = handshake;
serialPort1.Open();
}
private void button5_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.Show();
}
Form2:
public partial class Form2 : Form
{
Form1 f1;
public Form2(Form1 f)
{
f1 = f;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
f1.baudrate = int.Parse(this.comboBox25.SelectedItem.ToString());
}
}
「エラー1 インスタンス参照でメンバー'MakeCommand2.Form1.baudrate' にアクセスできません。代わりに型名を使用してください。」
どうすれば、エラーが解除出来ますでしょうか?
それと、そもそもの考え方が変?
一般的なやり方がありましたら、ご教示お願いします。

●質問者: gontakun_55
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● freemann
●100ポイント ベストアンサー

public static int baudrate;
は静的変数なので、インスタンスでのアクセスではなく、
Form1.baudrate=...
という感じに型名を付けてアクセスしなければなりません。

因みに次も参考にしてみてください。
.Net フォーム間でのデータの受け渡し


gontakun_55さんのコメント
参考にしたサイトのやり方が違うんですね。 確かに、Form1で指定すると出来ました。 ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ