C# C SaveFileDialog不会创建文件,也不会关闭
首先,我要指出,我是C语言的完全初学者,我一直在尝试通过实践来学习 整个项目是一个媒体播放器,我正在从我一直在观看的几个YouTube视频中创建和扩充它。我想了解SaveFileDialog,以及如何将列表框中的项目保存到xml文件中 然而,在我到达那里之前,我很难让SaveFileDialog保存任何内容,然后关闭 以下是我正在使用的代码:C# C SaveFileDialog不会创建文件,也不会关闭,c#,xml,listbox,savefiledialog,C#,Xml,Listbox,Savefiledialog,首先,我要指出,我是C语言的完全初学者,我一直在尝试通过实践来学习 整个项目是一个媒体播放器,我正在从我一直在观看的几个YouTube视频中创建和扩充它。我想了解SaveFileDialog,以及如何将列表框中的项目保存到xml文件中 然而,在我到达那里之前,我很难让SaveFileDialog保存任何内容,然后关闭 以下是我正在使用的代码: public Form1() { InitializeComponent(); }
public Form1()
{
InitializeComponent();
}
private void btn_save_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "XML-File | *.xml";
saveFileDialog1.Title = "Save Playlist";
saveFileDialog1.ShowDialog();
if (saveFileDialog1.ShowDialog() == DialogResult.OK) ;
}
现在,当我单击Save按钮btn_Save时,Save对话框将打开,默认为xml文件,但单击Save后不会保存任何文件,然后单击Save后,对话框将一次又一次打开,直到我选择Cancel
如果我尝试添加
SaveFileDialog.Close;
我得到一个错误,说SaveFileDialog不包含“Close”的定义,但我想我必须设置一些东西,告诉对话框在点击Save后关闭
这里对我帮助最大的是对这一点的修复,然后是代码中的一些注释,这些注释解释了每一行上发生的事情,以便我执行更相关的搜索并进一步阅读
也就是说,我们非常感谢您的帮助。请告诉我是否需要在此示例中包含其他代码。以下是将hello world写入文本文件的代码:
private void btn_save_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Text file | *.txt";
saveFileDialog1.Title = "Save Playlist";
if (saveFileDialog1.ShowDialog() != DialogResult.OK)
return;
File.WriteAllText(saveFileDialog1.FileName, "hello world");
}
您可以针对XML等对其进行调整,但关键概念是:
使用ShowDialog显示对话框-当对话框打开时,代码将在该点暂停,当对话框关闭时继续
检查结果,如果结果不正常,即用户单击了“取消”,则返回而不执行任何操作
否则,请执行类似于编写文件的操作
实际上,您需要使用从SaveFileDialog组件获得的信息来保存文件 也许这会对您有所帮助:
public Form1()
{
InitializeComponent();
}
private void btn_save_Click(object sender, EventArgs e)
{
Stream myStream ;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "XML-File | *.xml";
saveFileDialog1.Title = "Save Playlist";
saveFileDialog1.ShowDialog();
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if((myStream = saveFileDialog1.OpenFile()) != null)
{
// Code to write the stream goes here.
myStream.Close();
}
} //end if ShowDialog
} //end Click Button
去掉saveFileDialog1.ShowDialog行;我很难理解这段代码如何不止两次地显示savedialog…saveFileDialog只返回文件名,而不创建文件。请参阅:这是一个错误,说明名称“File”在当前上下文中不存在。需要在某个地方定义文件吗?它是System.IO.File类。您需要一个using System.IO;在代码文件的顶部。你可以指向红色的摇摆线,一个带灯泡的按钮出现了,它也在边距中-在lighbulb菜单中,它会为你提供修复它的功能-单击顶部选项,它会将using语句添加到你的代码顶部,就是它!非常感谢。对于如何设置保存的文件以从列表框中获取文本,您有什么建议吗?列表框本身没有文本。。它们的项目是或可以表示为文本。如果要获取列表框的内容并写入文件,我建议您使用stringbuilder构建文本,并枚举列表框的项集合,依次处理每个项。它可以简单到var sb=新的StringBuilder;列表框中的foreachvar o.项目sb.附录o;File.writealTextSomePath,sb.ToString;