如何在Form 1中从Form2调用方法

用户名

我在表格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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Windowsform应用程序中从Form2更改Form1中动态创建的按钮颜色

c# - 如何通过form1中的数组调用从DB调用的值并使用它在form2中创建条件

使用Form1的公共变量从Form1调用Form2的函数

在 Form2 上调用函数时从 Form1 上的文本框中获取文本

如何在form1.control之上添加一个form2控件

如何从Form2访问Form1的非静态方法

如何从form1到form2取值并返回?

如何从 Form2 设置 Form1.ControlBox=TRUE

当form1中的值发生变化时如何使form2更新

提交form2之前从form1到form2获取值的任何可能方法

如何在不创建新Form()的情况下从Form2访问Form1函数;

在form2中无法访问在form1中创建的公共textBox7

无法在Form2中使用Form1中的int数组

c#使用form1中的form2中的复选框

将数据从 form2 方法传递到 form1 文本框

Form2关闭时Form1执行方法不起作用

图像未在Form2中显示

在 Form2 中访问 SelectedPath

C#中form1和form2之间的数据传递

从form1访问form2中的不同元素,反之亦然

从form2插入后,form1中的datagridview自动刷新

VB.NET从form2修改form1中的标签

在 Form2 中接收事件值到 Form1 WinForms

从form1将数据插入到form2的datagridview中

使用在Form2的Form1中选择的XML文件

C# TextBox 从 Form1 输入到 Form2 中的表单名称输出?

将 Form1 中的“Private Sub Procedure1”从 Form2 更改为“Public -”(Form1)

如何在函数中调用Form

如何在隐藏模式下从Form3重新显示Form2?