내 Windows 응용 프로그램에는 ListView가 있습니다. 이 ListView의 각 항목에는 일부 SubItem이 있으며, 그 중 하나는 이미지 경로에 파일 경로를 저장하는 데 사용됩니다.OpenFileDialog를 사용하여 파일 경로를 올바르게 문자열로 포맷하는 방법은 무엇입니까?
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가 열립니다. 그런 다음 ListView의 현재 선택된 항목의 SubItem.Text를 이미지의 파일 경로로 변경합니다. 파일 경로가 Chosen_File에 할당 될 때
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;
}
그러나, 내가 항목을 선택하면 내가 ArgumentException이 얻을 것을 의미 올바르게 포맷되지 않았습니다.
파일 경로가 올바르지 않은 이유는 무엇이며 파일을 Chosen_File에 할당 할 때 어떻게해야합니까?
버튼을 취소 선택 사용자를 처리 할 필요가 (IE openFileDialog1.FileName = "") 그러면 코드가 예상대로 작동합니다. – Steve
또한 임시 var'listView1.SelectedItems [0] .SubItems [1] .Text = openFileDialog1.FileName;을 통해 결과를 스킵 할 필요가 없습니다. – Plutonix
@Plutonix 해결할 수 있습니다. –