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方法调用这些方法