【问题标题】:Calling non-static method from another file/class从另一个文件/类调用非静态方法
【发布时间】:2018-12-22 14:17:56
【问题描述】:

我提前道歉,因为我想这是一个重复的问题,但我一直在寻找答案大约一个小时,但我还没有找到解决我问题的答案。

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

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();
     }
}

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

【问题讨论】:

    标签: c# non-static


    【解决方案1】:

    当您执行Form1 t = new Form1() 时,它会创建一个新表单。要在表单上调用 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      相关资源
      最近更新 更多