首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >This.owner为空

This.owner为空
EN

Stack Overflow用户
提问于 2015-09-16 13:59:30
回答 1查看 1.2K关注 0票数 0

我在c#中创建了一个与机器交互的应用程序(windows应用程序)。它包含大约10多个表单。该项目需要与机器进行通信。这里我使用串口通信。Form1用于通信。即串行端口数据接收事件仅以这种形式存在。同时,我也要向机器发送数据。为此,在form1中有一个函数。当需要时,我必须从所有表单发送数据,比如form2,3,4,5..etc。为此,我创建了一个form1对象,并使用此对象调用发送函数。但我不能这样做。

form1中用于向串口发送数据的代码

代码语言:javascript
复制
 public  void  SerialPortValueUpdated(byte[] array)
    {

      serialPort1.Write(array, 0, lm);

     }

在form3中,form1函数的调用方式如下

代码语言:javascript
复制
((Form1)this.Owner).SerialPortValueUpdated(ARRAY);

但是当我转到form2并返回到form3时,this.Owner是空的。如何修改此代码??此函数调用方法是否错误??

EN

回答 1

Stack Overflow用户

发布于 2015-09-16 22:09:56

下面是如何实现static方法。

在Form1中声明一个静态成员,并在构造函数中初始化它:

代码语言:javascript
复制
public partial class Form1 : Form
{

    public static Form1 Instance = null;

    public Form1()
    {
        InitializeComponent();
        Form1.Instance = this;
    }

    public void SerialPortValueUpdated(byte[] array)
    {

    }

}

现在,从任何其他形式,您都可以使用Form1.Instance

代码语言:javascript
复制
Form1.Instance.SerialPortValueUpdated(...);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32600824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档