如何使用OpenFileDialog正确地将文件路径格式化为字符串
本文关键字:路径 格式化 字符串 文件 何使用 OpenFileDialog 正确地 | 更新日期: 2023-09-27 18:03:30
在我的Windows应用程序中有一个ListView。这个ListView中的每个项目都有一些子项,其中一个子项用于存储图像的文件路径。
当ListView中的一个项目被选中时,PictureBox中的图像将使用以下代码更新;
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//check that only one item is selected
if (listView1.SelectedItems.Count == 1)
{
//update the image from the filepath in the SubItem
pictureBox1.Image = Image.FromFile(listView1.SelectedItems[0].SubItems[1].Text);
}
}
这一切都很好。但是,当单击PictureBox时,它会打开一个OpenFileDialog以允许用户选择图像。然后更改SubItem。列表视图中当前选中项的文本到图像的文件路径,如;
private void pictureBox1_Click(object sender, EventArgs e)
{
//open a file dialog to chose an image and assign to the SubItem of the selected item
openFileDialog1.ShowDialog();
openFileDialog1.FileName = "";
string Chosen_File = "";
Chosen_File = openFileDialog1.FileName;
listView1.SelectedItems[0].SubItems[1].Text = Chosen_File;
}
然而,当文件路径被分配给Chosen_File时,它的格式不正确,这意味着当我选择项目时,我得到一个ArgumentException。
为什么文件路径没有正确格式化,我怎么能确保它是分配给Chosen_File时?
你应该改变你的代码,不从OpenFileDialog中删除选择,你还需要处理用户选择对话框上的取消按钮
private void pictureBox1_Click(object sender, EventArgs e)
{
// Enter the assignment code only if user presses OK
if(DialogResult.OK == openFileDialog1.ShowDialog())
{
// This is you error
// openFileDialog1.FileName = "";
string Chosen_File = openFileDialog1.FileName;
listView1.SelectedItems[0].SubItems[1].Text = Chosen_File;
}
}