簡體   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