In meiner Windows-Anwendung gibt es eine ListView. Jedes Element in diesem ListView verfügt über einige Unterelemente, von denen eines zum Speichern eines Dateipfads in einem Bild verwendet wird.Wie formatiere ich einen Dateipfad als String mit einem OpenFileDialog?
Wenn ein Element in der ListView ausgewählt wird, wird das Bild in einer PictureBox mit dem folgenden Code aktualisiert;
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);
}
}
Das alles funktioniert gut. Wenn Sie auf die PictureBox klicken, wird jedoch ein OpenFileDialog geöffnet, damit der Benutzer ein Bild auswählen kann. Es ändert dann den SubItem.Text des aktuell ausgewählten Elements in der ListView in den Dateipfad des Bildes, so;
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;
}
Wenn jedoch der Dateipfad zu Chosen_File zugeordnet ist, wird es nicht richtig formatiert, was bedeutet, dass, wenn ich den Artikel wähle ich ein Argument bekommen.
Warum ist der Dateipfad nicht korrekt formatiert, und wie kann ich sicherstellen, dass es bei der Zuweisung zu Choose_File ist?
Dialog Abbrechen der Auswahl des Benutzers zu handhaben müssen sich ändern, wenn Sie die Zeile entfernen, die die Openfile Auswahl aufhebt (IE openFileDialog1.FileName = "") dann wird Ihr Code wie erwartet funktionieren – Steve
Sie müssen auch nicht scotch das Ergebnis durch eine Temp var 'listView1.SelectedItems [0] .SubItems [1] .Text = openFileDialog1.FileName;' – Plutonix
@Plutonix Ich werde das beheben. –