繁体   English   中英

从另一个文件/类调用非静态方法

[英]Calling non-static method from another file/class

我事先表示歉意,因为我想这是一个重复的问题,但是我一直在寻找答案大约一个小时,而我还没有找到能够解决我的问题的答案。

基本上,我试图从另一个文件和类调用非静态方法。 我的代码如下:

Form1.cs

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {        
        public void SwapPositions()
        {
            text1.Location = new Point(73, 101);
            label1.Location = new Point(12, 111);
        }
     }
}

我正在尝试像这样调用该函数,但是它不起作用:

Settings.cs

namespace WindowsFormsApp1
{
    public partial class Settings : Form
    {
// some code //
                Form1 t = new Form1();
                t.SwapPositions();
     }
}

谁能向我解释为什么这不起作用以及如何更改我的代码以使其起作用?

当您执行Form1 t = new Form1()它将创建一个新表单。 要在SwapPositions上调用SwapPositions方法,请执行以下操作:

namespace WindowsFormsApp1
{
    public partial class Settings : Form
    {
        Form1 frm = null;
        public Settings(Form1 frm)
        {
            this.frm = frm;
        }
        public void MethodWhereSwapPositionsGetsInvoked()
        {
            frm.SwapPositions();
        }
     }
}

并使用以下命令创建一个Settings实例:

Settings settings = new Settings(this);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM