访问方法并在另一个类中使用它

时间:2018-09-04 14:10:24

标签: c# .net

我已经使用方法UpdateLogList()来更新代码中的listView,并且可以正常工作。现在创建了我需要的此类,当我尝试使用UpdateLogList()时出现错误

  

非静态字段,方法或属性'Form1.UpdateLogList(string)'需要对象引用

并且不能在其他类中使用它。

我发现许多与此问题类似的问题,但是没有一个解决方案对我有用。

我如何使它起作用

public partial class Form1 : Form
{
    private class MyInit : AnotherClass
    {
        public override void Init()
        {
            base.Init();

            // some action occur i need to update here
            Form1.UpdateLogList("Text i wan't to set")
        }
    }

    public Form1()
    {
        InitializeComponent();
    }

    public void UpdateLogList(string data)
    {
        logList.Items.Add(dateNow + " - " + data);
    }
}

2 个答案:

答案 0 :(得分:0)

尝试使其变为静态。

public static void UpdateLogList(string data){//your code here}

答案 1 :(得分:0)

(大概)您正在logList中使用成员UpdateLogList,因此不能使其成为静态。因为它不是静态的,所以不能像在这里那样在没有目标的情况下调用它:

Form1.UpdateLogList("Text i wan't to set");

更改它以将该方法作为实例方法调用:

this.UpdateLogList("Text i wan't to set"); // `this.` is optional

现在,当您想从另一个类调用此方法时,请确保您具有对表单的引用。您将可以调用它:

myFormInstance.UpdateLogList("Text i wan't to set");