C#程序开发类间传递参数问题

一个工程下有两个类(两个窗口),一个类中定义了一个结构体,在一个类中定义了一个结构体并且实例之后写了一个方法来修改一个数据:publicvoidLightArrow(in... 一个工程下有两个类(两个窗口),一个类中定义了一个结构体,在一个类中定义了一个结构体并且实例之后写了一个方法来修改一个数据:
public void LightArrow(int i)
{
ArrowPositonInformation[i].FlagShow = 255;
}
同时,这个类下有一个timer实时刷新该类的界面。
private void HistoryRecord_Load(object sender, EventArgs e)
{
form.LightArrow(3);
}

private void timer1_Tick(object sender, EventArgs e)
{
if (i == 50)
i = 1;
form.LightArrow(i);
i += 1;
timer1.Interval = 10;
}
这是另一个类中调用LightArrow方法的代码。

如果是在这个类下调用能够正常的修改结构体中对应的数值,
但如果在另一个类下修改则没有修改数值的效果。
这是第二个窗体,Form1是第一个窗体,现在主要想要实现两个窗体之间传递参数
展开
 我来答
syht2000
高粉答主

2016-09-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

你所说的另一个类中调用时所用的那个form.LightArrow中的form是从哪来的,如果是重新声明的一个窗体,类似于xxx form=new xxx()这种,那当然是不行的,解决的方法其实与变量传递一样,比如仍然用静态变量

//我不清楚这你个定义结构和方法的窗体叫什么,比如是Form1
public static Form1 current=null;
//然后在这个类的构造函数中
public Form1()
{
    InitializeComponent();
    current = this;//赋值
}
public void LightArrow(int i)
{
   ArrowPositonInformation[i].FlagShow = 255;
}

然后在其它类或者其它地方,就可以直接用

Form1.current.LightArrow(3);

追问
form是 Form1 form = new Form1();这样来的,是从网上搜索的一种传递参数的方式,但是似乎不行
追答
说过了这样当然不行,怎么处理已经说过了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式