我在c#中创建了一个与机器交互的应用程序(windows应用程序)。它包含大约10多个表单。该项目需要与机器进行通信。这里我使用串口通信。Form1用于通信。即串行端口数据接收事件仅以这种形式存在。同时,我也要向机器发送数据。为此,在form1中有一个函数。当需要时,我必须从所有表单发送数据,比如form2,3,4,5..etc。为此,我创建了一个form1对象,并使用此对象调用发送函数。但我不能这样做。
form1中用于向串口发送数据的代码
public void SerialPortValueUpdated(byte[] array)
{
serialPort1.Write(array, 0, lm);
}在form3中,form1函数的调用方式如下
((Form1)this.Owner).SerialPortValueUpdated(ARRAY);但是当我转到form2并返回到form3时,this.Owner是空的。如何修改此代码??此函数调用方法是否错误??
发布于 2015-09-16 22:09:56
下面是如何实现static方法。
在Form1中声明一个静态成员,并在构造函数中初始化它:
public partial class Form1 : Form
{
public static Form1 Instance = null;
public Form1()
{
InitializeComponent();
Form1.Instance = this;
}
public void SerialPortValueUpdated(byte[] array)
{
}
}现在,从任何其他形式,您都可以使用Form1.Instance
Form1.Instance.SerialPortValueUpdated(...);https://stackoverflow.com/questions/32600824
复制相似问题