原因:
主窗体内,新建子窗体后;
主窗体可以调用子窗体的【属性】【方法】等;
但是子窗体内无法调用主窗体的【属性】【方法】。
解决办法:
只有全局的属性和方法,才能被任意调用。
所以,2个窗体相对公共区定义委托就行。一般以子窗体内定义
namespace CAN_namespace
{
public class Help_CAN_ZHCX : IFace_RTX // ZHCX 珠海创芯科技有限公司
{//作者qq750273008 祁成 更新日期:2024/3/9
//1申明委托》委托命令
public delegate void WT_GET_Data<T>(T ciA402);//↑ui显示发送命令
public delegate void WT_SET_Data(byte[] bytes, string data);//↓下执行对象
public WT_GET_Data<VCI_CAN_OBJ[]> Wt_get;//↑event委托=》呼叫上ui层 让上层显示:发送命令
public WT_SET_Data Wt_set;//↓委托=》呼叫下位机执行
然后子窗体内呼叫:
if (num > 0)// CAN1接收帧数
{
Obj = obj;
Wt_get?.Invoke(obj);
return num;
主窗体的绑定:
private void Form1_Load(object sender, EventArgs e)
{
can.Wt_get += wt;
}private void wt(VCI_CAN_OBJ[] ciA402)
{
// throw new NotImplementedException();
}