gpt4 book ai didi

C# Windows 窗体 : Save & Save As Woes

转载 作者:可可西里 更新时间:2023-11-01 10:08:46 28 4
gpt4 key购买 nike

这让我很郁闷。我是 C Sharp 的新手,因此需要一些帮助。我的保存/另存为完全是胡说八道。

真的有两个问题:

如何在不弹出保存对话框的情况下保存对现有文件的更改?如果我单击“保存”,它会弹出一个对话框,这很好,所以我保存它,然后进行一些更改并再次单击“保存”,它会弹出一个对话框,而不仅仅是将文件保存为已经给定的名称。

如何在另存为对话框中显示文件名而不是完整路径?它显示为文件名:C:\Users\username\desktop\save\filename.xml

这是在 MainForm.cs 中。

private void biFileSave_Click(object sender, EventArgs e)
{
// Save diagram
EditorForm editForm = this.ActiveDiagramForm;
if (editForm != null)
{
if (!editForm.HasFileName)
{
if (this.saveEditorDialog.ShowDialog(this) == DialogResult.OK)
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog.FileName);
}
}
else
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog.FileName);
}
}

private void biFileSaveAs_Click(object sender, EventArgs e)
{
// Save As diagram
EditorForm editForm = this.ActiveDiagramForm;
if (editForm != null)
{
if (editForm.HasFileName)
{
this.saveEditorDialog.FileName = editForm.FileName;
}
if (this.saveEditorDialog.ShowDialog(this) == DialogResult.OK)
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog.FileName);
string strFileName = this.saveEditorDialog.FileName;

}

}
}

这是在 EditForm.cs 中

 public string FileName
{
get
{
return this.fileName;
}
set
{
this.fileName = value;
this.Text = Path.GetFileNameWithoutExtension(this.fileName);
}
}

public bool HasFileName
{
get
{
return (this.fileName != null && this.fileName.Length > 0);
}
}

编辑:

感谢您这么快就帮我解决了这个问题!我的保存现在按预期工作,但是它引入了一个奇怪的问题与另存为(上面的代码)。

如果我打开一个已保存的文件 (test.xml),然后单击“另存为”(将其命名为 test2.xml),它会保存到新文件中。但是,当我再次打开那个 test.xml 并进行更改并单击“保存”时,它会将这些更改保存到 test2.xml。很奇怪……有什么想法吗?

最佳答案

在代码中哪里设置了文件名?从您发布的示例中,我没有看到它被设置在任何地方,但也许它在其他地方。这可能有效:

private void biFileSave_Click(object sender, EventArgs e)
{
// Save diagram
EditorForm editForm = this.ActiveDiagramForm;
if (editForm != null)
{
if (!editForm.HasFileName)
{
if (this.saveEditorDialog.ShowDialog(this) == DialogResult.OK)
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog.FileName);
editForm.FileName = this.saveEditorDialog.FileName;
}
}
else
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog.FileName);
}
}

关于C# Windows 窗体 : Save & Save As Woes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617684/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com