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' にアクセスできません。代わりに型名を使用してください。」
どうすれば、エラーが解除出来ますでしょうか?
それと、そもそもの考え方が変?
一般的なやり方がありましたら、ご教示お願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/08/09 16:04:45
  • 終了:2013/08/09 16:20:00

ベストアンサー

id:freemann No.1

freemann回答回数307ベストアンサー獲得回数492013/08/09 16:15:37

ポイント100pt

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

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

id:gontakun_55

参考にしたサイトのやり方が違うんですね。
確かに、Form1で指定すると出来ました。
ありがとうございます。

2013/08/09 16:19:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません