无法调用C#方法 - 当前上下文中不存在名称"sender"

And*_*ner 1 .net c# winforms

我有一个尝试执行事件/方法(Download_Click)的方法,虽然由于某种原因我得到:

当前上下文中不存在"sender"这个名称当前上下文中不存在名称"e"

该按钮肯定存在,但由于某些原因在我的代码中不起作用:

private void checkver()
{
    FileInfo sourceFile = new FileInfo("download.zip");
    if (sourceFile.Exists)
    {
        var request = (HttpWebRequest)WebRequest.Create(@"http://www.google.com/download.zip");
        request.Method = "HEAD";
        var response = (HttpWebResponse)request.GetResponse();

        if (response.LastModified > sourceFile.LastWriteTime)
        {
            MessageBox.Show("File outdated");
            Download_Click(sender, e);
            // use response.GetStream() to download the file.
        }
        else
        {
            MessageBox.Show("File in date");
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 5

您收到此消息是因为您的函数中没有名为sender(也没有命名e)的变量.

看起来你已经尽力了按钮的代码移动Click事件处理程序进行到另一个函数(sendere是,按照惯例,发送到事件处理程序的两个参数的名称).遗憾的是,函数中不存在sendere变量,因为您没有将它们定义为参数.

这里最好的做法是为Download按钮做同样的事情.不是Click直接调用它的事件处理程序(Download_Click),而是创建一个执行下载的新函数,然后从内部调用该函数Download_Click.然后更改上面的代码直接调用该函数.