Can';t调用C#方法-名称';发送方';在当前上下文中不存在

Can';t调用C#方法-名称';发送方';在当前上下文中不存在,c#,.net,winforms,C#,.net,Winforms,我有一个方法尝试执行一个事件/方法(下载\单击),尽管出于某种原因我得到: 当前上下文中不存在名称“发件人” 当前上下文中不存在名称“e” 该按钮肯定存在,但由于某些原因,在我的以下代码中不起作用: private void checkver() { FileInfo sourceFile = new FileInfo("download.zip"); if (sourceFile.Exists) { var request = (HttpWebReque

我有一个方法尝试执行一个事件/方法(下载\单击),尽管出于某种原因我得到:

当前上下文中不存在名称“发件人” 当前上下文中不存在名称“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");
        }

    }

}

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

看起来您试图将按钮的
单击
事件处理程序的代码移出到另一个函数中(
sender
e
按照惯例是发送到事件处理程序的两个参数的名称)。不幸的是,函数中不存在
sender
e
变量,因为您没有将它们定义为参数


这里最好的方法是对
下载
按钮执行相同的操作。不要直接调用它的
Click
事件处理程序(
Download\u Click
),而是创建一个执行下载的新函数,然后从
Download\u Click
中调用该函数。然后更改上面的代码以直接调用该函数。

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

看起来您试图将按钮的
单击
事件处理程序的代码移出到另一个函数中(
sender
e
按照惯例是发送到事件处理程序的两个参数的名称)。不幸的是,函数中不存在
sender
e
变量,因为您没有将它们定义为参数


这里最好的方法是对
下载
按钮执行相同的操作。不要直接调用它的
Click
事件处理程序(
Download\u Click
),而是创建一个执行下载的新函数,然后从
Download\u Click
中调用该函数。然后更改上面的代码以直接调用该函数。

似乎您正试图以编程方式调用按钮单击事件。发件人和电子邮件在此上下文中不存在。您可以用这种方式调用click事件

Download_Click(this, new EventArgs());

似乎您正试图以编程方式调用按钮单击事件。发件人和电子邮件在此上下文中不存在。您可以用这种方式调用click事件

Download_Click(this, new EventArgs());
's的答案是正确的——但是如果你真的想打那个电话(不,请不要)(我的意思是,真的,不要),你可以使用

Download_Click(new object(), new System.EventArgs());
's的答案是正确的——但是如果你真的想打那个电话(不,请不要)(我的意思是,真的,不要),你可以使用

Download_Click(new object(), new System.EventArgs());

请显示整个方法,或者至少显示方法签名。@Michael:他是;这是
private void checkver()
@Michael Petrotta private void Download\u单击(对象发送者,事件参数e)显示整个方法,或者至少显示方法签名。@Michael:他是;这是
private void checkver()
@Michael Petrotta private void下载\u单击(对象发送者,事件参数)-1。调用控件的事件处理程序并传递垃圾参数不是处理此问题的首选方法。如果您确实需要调用事件调用,请下载.PerformClick(),但我认为这不是必需的。代码应该被重构成另一个函数。调用控件的事件处理程序并传递垃圾参数不是处理此问题的首选方法。如果您确实需要调用事件调用,请下载.PerformClick(),但我认为这不是必需的。代码应该被重构成另一个函数。如果你要直接调用它,应该传递在正常调用中传递的内容:
Download\u单击(Download,EventArgs.Emtpy)
@Adam你的实际答案更好-我们不要把这个想法传播开来。重构是一种方法-调用按钮事件处理程序感觉非常。。。VB 5如果您要直接调用它,应该传递在正常调用中传递的内容:
Download\u单击(Download,EventArgs.Emtpy)
@Adam您的实际答案更好-我们不要传播这个想法。重构是一种方法-调用按钮事件处理程序感觉非常。。。vb5