C#不同窗体如何调用同一个串口,附我写的代码,求指正

Form1用来选择com口并打开,点击一个button后跳转到Form2(主窗体),如何使Form2能调用Form1的已经打开的窗口,并使得之后的form3.4都能用Fo... Form1用来选择com口并打开,点击一个button后跳转到Form2(主窗体),如何使Form2能调用Form1的已经打开的窗口,并使得之后的form3.4都能用
Form1代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
getAvailablePorts();
}
void getAvailablePorts()
{

String[] ports = SerialPort.GetPortNames();
comboBoxPortName.Items.AddRange(ports);
}

public void buttonOpenPort_Click(object sender, EventArgs e)
{
try
{
if (comboBoxPortName.Text == "" || comboBoxBaudRate.Text == "")
{
MessageBox.Show("Please select port settings");
}
else
{
serialPort1.PortName = comboBoxPortName.Text;
serialPort1.BaudRate = Convert.ToInt32(comboBoxBaudRate.Text);
serialPort1.Open();
buttonOpenPort.Enabled = false;
}

}
catch (UnauthorizedAccessException)
{
MessageBox.Show("Unauthorized Access");
}
this.Close();
}
}
Form2代码如下:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
if (serialPort1.IsOpen)
{

}
}

private void Form2_Load(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.ShowDialog();
}

private void btnOpenVedio_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
f3.ShowDialog();
}

private void btnSimControl_Click(object sender, EventArgs e)
{
Form5 f5 = new Form5();
f5.ShowDialog();
}

private void btnCheckState_Click(object sender, EventArgs e)
{
Form4 f4 = new Form4();
f4.ShowDialog();
}
}
展开
 我来答
百度网友5298263
推荐于2017-11-22 · TA获得超过968个赞
知道小有建树答主
回答量:1005
采纳率:94%
帮助的人:527万
展开全部
不知道你的serialPort1定义在哪

如果是在Form1里 那么加上 public static
则其他窗口可以通过Form1.serialPort1来引用它

当然 更好的是放在另一个静态类里
比如
public static class CommonRes
{
public static SerialPort serialPort1;
}
只要using了这个类的命名空间
这样任何窗体内都能用CommonRes.serialPort1来引用它
追问
Serialport1是Form1窗体从工具箱拖进来的控件,没有专门定义
追答
这种没有界面的控件 没什么拖到窗口内的意义

直接用代码写到Form1里面就行

public static SerialPort serialPort1=new SerialPort ();
这样其他地方都可以Form1.serialPort1来调用
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友834c3b4
2018-09-06
知道答主
回答量:1
采纳率:0%
帮助的人:831
展开全部
请问解决了吗,遇到同样问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式