C# 如何调用其他事件方法?

C# 如何调用其他事件方法?,c#,methods,event-handling,save,menustrip,C#,Methods,Event Handling,Save,Menustrip,因此,我试图做的是,如果用户按下Save,他们将在没有对话框的情况下保存文件。此代码检查要保存的文件是否存在。如果它不存在,它将重定向到saveAsDialog方法 private void save(object sender, EventArgs e) { if (File.Exists(fileLabel.Text)) { // this will save in the debug folder unfortunately FileStre

因此,我试图做的是,如果用户按下
Save
,他们将在没有对话框的情况下保存文件。此代码检查要保存的文件是否存在。如果它不存在,它将重定向到
saveAsDialog
方法

private void save(object sender, EventArgs e)
{
    if (File.Exists(fileLabel.Text))
    {
        // this will save in the debug folder unfortunately
        FileStream outputFileStream = new FileStream(fileLabel.Text, FileMode.Create, FileAccess.Write);
        StreamWriter writer = new StreamWriter(outputFileStream);

        // writing block (too long code)


        writer.Close();
        outputFileStream.Close();
    }

    else
    {
        saveAs(); // no overload
    }
}
但是,当我调用
saveAs()
方法时,它不会过载。现在我从未在
Form1
类中调用过事件处理程序,所以我不知道如何使用它。所有处理程序都来自双击表单设计


因此,如果我想让
saveAs()
方法调用执行与用户从菜单条中选择它相同的操作,那么我必须在该方法调用上设置哪些参数?

尝试以下操作以触发事件:

private void saveAs(object sender, EventArgs e)
{
    // code is similar (it works fine if user clicks the menu strip)
}

尝试以下操作以触发您的事件:

private void saveAs(object sender, EventArgs e)
{
    // code is similar (it works fine if user clicks the menu strip)
}

在一个地方使用方法意味着将代码重构为可在任何地方使用的通用方法。

在一个地方使用方法意味着将代码重构为可在任何地方使用的通用方法。

传递保存参数:

saveAs(this, EventArgs.Empty)

传递保存参数:

saveAs(this, EventArgs.Empty)

使用
save
事件的
code
编写
方法

saveAs(sender, e);
事件中调用
此方法

void saveOrSaveAs()
{
  if (File.Exists(fileLabel.Text))
  {
    // this will save in the debug folder unfortunately
    FileStream outputFileStream = new FileStream(fileLabel.Text, FileMode.Create, FileAccess.Write);
    StreamWriter writer = new StreamWriter(outputFileStream);

    // writing block (too long code)

    writer.Close();
    outputFileStream.Close();
  }
  else
  {
    saveAs(); //If You have already written code for saveAs() method.
  }
}
saveAs
事件中再次调用
方法

private void save(object sender, EventArgs e)
{
  saveOrSaveAs();
}

使用
save
事件的
code
编写
方法

saveAs(sender, e);
事件中调用
此方法

void saveOrSaveAs()
{
  if (File.Exists(fileLabel.Text))
  {
    // this will save in the debug folder unfortunately
    FileStream outputFileStream = new FileStream(fileLabel.Text, FileMode.Create, FileAccess.Write);
    StreamWriter writer = new StreamWriter(outputFileStream);

    // writing block (too long code)

    writer.Close();
    outputFileStream.Close();
  }
  else
  {
    saveAs(); //If You have already written code for saveAs() method.
  }
}
saveAs
事件中再次调用
方法

private void save(object sender, EventArgs e)
{
  saveOrSaveAs();
}

为什么不使用helper方法并调用它呢?为什么不使用helper方法并调用它呢?嗯,你是怎么做到的?我对此不是很确定。与其直接调用ui方法,不如创建一个实用程序dll,创建一个保存方法,并使用一个参数保存(另存为),从ui方法调用这些方法。嗯,你怎么做?我对此不是很确定。与其直接调用ui方法,不如创建一个实用程序dll,创建一个保存方法,并使用一个参数保存(另存为),从ui方法调用这些方法