我在表格2中有一个方法
public void set_location(int lx, int ly)
{
this.Location = new Point(lx, ly);
}
发生此事件时需要从Form1调用哪个
private void Form1_LocationChanged(object sender, EventArgs e)
{
loc_x = this.Location.X;
loc_y = this.Location.Y;
}
我将Form2初始化为新线程
private void Form1_Load(object sender, EventArgs e)
{
Thread newThread = new Thread((ThreadStart)delegate { Application.Run(new Form2()); });
newThread.Start();
}
我如何调用方法set_location(x,y); 来自Form1吗?
首先,第二个线程没有任何好处。
最简单的方法是在form2的构造函数中传递对form1的引用
private void Form1_Load(object sender, EventArgs e)
{
Form2 form2 =new Form2();
form2.Show(this);
}
private Form1 Parent {get;set;}
public Form2(Form1 form)
{
this.Parent = form;
}
然后您可以正常引用其属性
this.Parent.Form1_LocationChanged(this, null);
为了回应您的评论,请在您的form1中也维护对Form2的引用,然后仅调用该
private void Form1_LocationChanged(object sender, EventArgs e)
{
...
this.form2.set_location(loc_x, loc_y);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句