C# 进行Winform窗体时,一个窗体需要调用另一个窗体的函数

在使用C# 进行WinForm设计时,常常会遇到一个窗体需要使用另一个窗体的函数,如果重写函数,不仅造成代码冗余,还会给内存带来一定的消耗。今天则提供一个方法(使用this指针),使得窗体间函数进行交互。

一个窗体调用另一个窗体的方法:
例如:窗体FAsidePage_Work要调用窗体FAside_Brand中的方法

1、首先在窗体FAside_Brand中将窗体FAside_Brand设为静态窗体
 public static FAside_Brand pBrand = null;   //设此窗体为静态,其他窗体可调用此窗体中的方法
2、然后在此窗体FAside_Brand 的构造函数中加入 pBrand = this;
		public FAside_Brand()
        {
            InitializeComponent();
            ReadIni();
            pBrand = this;   //构造函数中加入 pBrand = this;         
        }
3、最后就可以在窗体FAsidePage_Work中调用窗体FAside_Brand中的方法了,但必须遵从以下调用格式:
例如:
FormA.m_formA.函数名();
		
		//实例如下:
		public FAsidePage_Work()
        {
            InitializeComponent();
            //ReadIni();
            FAside_Brand.pBrand.ReadIni();	//在FAsidePage_Work中调用FAside_Brand方法
        }
欧姆龙通讯一般指的是与欧姆龙PLC进行通信,通常使用欧姆龙的HostLink协议或FINS协议进行通信。这里提供一个使用HostLink协议进行通信的示例代码: 1. 在WinForm窗体上添加一个按钮和一个文本框,用于发送和接收数据。 2. 引用欧姆龙HostLink通讯的DLL库文件(OmronHostLink.dll)。 3. 编写代码: ```csharp using System; using System.Windows.Forms; using OmronHostLink; namespace OmronHostLinkTest { public partial class Form1 : Form { // 定义HostLink通讯对象 private OmronHostLink hostLink = new OmronHostLink(); public Form1() { InitializeComponent(); } private void btnConnect_Click(object sender, EventArgs e) { // 设置PLC的通讯参数 hostLink.SerialPortName = "COM1"; hostLink.BaudRate = 9600; hostLink.DataBits = 7; hostLink.Parity = OmronHostLink.Parities.Even; hostLink.StopBits = OmronHostLink.StopBits.One; try { // 打开通讯端口 hostLink.Open(); // 连接PLC hostLink.Connect(); MessageBox.Show("连接成功!"); } catch (Exception ex) { MessageBox.Show("连接失败:" + ex.Message); } } private void btnDisconnect_Click(object sender, EventArgs e) { // 断开PLC的连接 hostLink.Disconnect(); // 关闭通讯端口 hostLink.Close(); MessageBox.Show("断开连接成功!"); } private void btnSend_Click(object sender, EventArgs e) { // 发送读取PLC数据的命令 OmronHostLink.WordData data = hostLink.ReadWord(0x82, 0, 1); // 将数据显示在文本框中 txtRecv.Text = data.ToString(); } } } ``` 4. 在窗体上的按钮的Click事件中调用对应的函数即可进行通讯操作。 需要注意的是,HostLink通讯需要使用RS232串口进行连接,需要根据实际情况设置相应的通讯参数(如串口号、波特率、数据位、校验位、停止位等)。此外,还需要根据PLC的具体情况设置读取和写入数据的地址和数据类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44119674

觉得有帮助,鼓励下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值