在静态方法中使用其他方法

Kar*_*ann 1 c# timer elapsed

如何ChangeText在静态方法中使用该方法timer_Elapsed

public Load()
{
    InitializeComponent();

    System.Timers.Timer timer = new System.Timers.Timer();
    timer.Interval = 1000;

    // I can't transfer parameters here
    timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 
    timer.Start();
}

static void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    //Its underlined in red. I need a object reference?
    ChangeText(); 
}

public void ChangeText()
{
    label1.Text = label1.Text + ".";
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

我没有看到任何理由timer_Elapsed应该是static.所以只需删除它.

void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    ChangeText(); //Its not underlined anymore, you have an object reference
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是制作ChangeText静态.但是这不起作用,因为你想设置一个Label文本,所以Form无论如何你需要一个实例.