Вызов нестатического метода из другого файла / класса - PullRequest
0 голосов
/ 22 декабря 2018

Я заранее извиняюсь, потому что представляю, что это дублирующий вопрос, но я искал ответ около часа, и мне еще не удалось найти ответ, который решает мою проблему.

По сути, япытаюсь вызвать нестатический метод из другого файла и класса.Мой код выглядит следующим образом:

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

Может ли кто-нибудь объяснить мне, почему это не работает и как изменить мой код, чтобы он работал?

1 Ответ

0 голосов
/ 22 декабря 2018

Когда вы делаете 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);
...