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
}
}
所以我要做的是,如果用户按Save
他们将保存文件而不显示对话框。此代码检查文件是否存在以保存。如果不存在,它将重定向到saveAsDialog
方法。
private void saveAs(object sender, EventArgs e)
{
// code is similar (it works fine if user clicks the menu strip)
}
但是,当我调用 saveAs()
方法时,它不会过载。现在我从来没有在我的Form1
类中调用过事件处理程序,所以我不知道如何使用它。所有处理程序都来自双击表单设计。
那么,如果我希望它执行与用户从菜单条中选择它相同的操作,则必须在 saveAs()
方法调用上放置哪些参数?
尝试此操作以触发事件:
saveAs(this, EventArgs.Empty)
传递保存参数:
saveAs(sender, e);
在一个地方使用方法建议将代码重构为可在任何地方使用的通用方法。
使用save
事件的code
编写Method
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.
}
}
并在两个events
中Call
此方法
private void save(object sender, EventArgs e)
{
saveOrSaveAs();
}
再次call
这个method
在你的saveAs
Event
.
private void saveAs(object sender, EventArgs e)
{
saveOrSaveAs();
}