如何使用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正确地将文件路径格式化为字符串

你应该改变你的代码,不从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;
    }
}