Witam ! Czy da się w listview w c# zrobić jedną kolumnę która zawierała by zdjęcia albo linki do nich po których kliknięciu zdjęcie by sie wyświetlało?
Zakładam że pytasz o Windows Forms. Nie za bardzo też rozumiem czy problemem jest dodawanie zdjęcia czy otwieranie zdjęcia po kliknięciu. Jeśli to pierwsze to albo wyświetl ListView w Image View i użyj przykładowego kodu lub jeśli chcesz to zrobić w Details View to napisz własną klasę dziedziczącą po ListView i napisz taką funkcjonalność lub użyj gotowej kontrolki.
Co do samego wyświetlania zdjęcia po kliknięciu- każda kontrolka w WindowsForms posiada właściwość Tag typu object. Możesz tam umieścić cokolwiek chcesz, tak więc w Twoim przypadku może to być ścieżka do pliku ze zdjęciem. Przykład jak odpalić takie zdjęcie po kliknięciu na ListViewItem:
private void listView1_Click(object sender, EventArgs e)
{
//Bierzemy lokacje kursora relatywną do kontrolki
Point p = listView1.PointToClient( Cursor.Position );
//Bierzemy ListViewItem pod kursorem
ListViewItem item = listView1.GetItemAt( p.X, p.Y );
//Otwieramy zdjęcie
System.Diagnostics.Process.Start( (string)item.Tag );
}
To tak wyklepane na szybko. Zdjęcie zostanie odpalone w domyślnym programie, np. Photo Viewer. Oczywiście zawiń to w try-catch bo jeśli pliku nie da się otworzyć to zostanie rzucony wyjątek. Musisz też się upewnić że pod kursorem faktycznie znajduje się ListViewItem a nie zostało kliknięte puste pole. Jeśli chcesz by zdjęcie pojawiło się po kliknięciu tylko na zdjęciu to wygoogluj, powinno zając Ci to kilka minut.
EDIT: Dodałem komentarze do kodu.
a jak zmodyfikować ten kod aby zdjęcia wyświetlały się w 5 kolumnie mojej listview?
this.lv_uczniowie.View = View.SmallIcon;
this.imageList1.ImageSize = new Size(32, 32);
this.lv_uczniowie.SmallImageList = this.imageList1;
for (int j = 0; j < this.imageList1.Images.Count; j++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = j;
this.lv_uczniowie.Items.Add(item);
}
Szczerze to nie jestem pewny ale chyba się tak nie da. Zawsze wyświetlałem tę kontrolkę w trybie Details. List View w trybie Small lub Large Icon jest dosyć prymitywne i ma pozwalać na łatwe wyświetlenie obrazków opcjonalnie z tekstem. Jeśli koniecznie potrzebujesz wyświetlić w N kolumnie to albo zaimplementuj włąsną ListView albo użyj gotowca. Jeśli robisz to dla nauki to proponuję pierwszą opcję, zawsze to nowe doświadczenie.