Я создаю интерфейс окна формы, состоящий из чего-то вроде файлового браузера (ComboBox и ListView с изображением в первом столбце каждого элемента), представление ListView, которое я использовал, - Detail, я добавил изображения в SmallImageList, уже проверьте, что изображения не равны NULL, и установите индекс изображения для каждого элемента, но изображения по-прежнему не отображаются.
это мой код
main_fileView.View = View.Details;
string[] files;
if (main_dirComboBox.Text != "")
{
string parent = main_dirComboBox.Text;
if (System.IO.Directory.Exists(parent))
{
files = System.IO.Directory.GetFiles(parent);
if (files != null)
{
main_fileView.Items.Clear();
ImageList img_list = new ImageList();
int n = 0;
ImageList small_img_list = new ImageList();
ImageList large_img_list = new ImageList();
for (int i = 0; i < files.Length; i++)
{
string file_name = files[i].Substring(files[i].LastIndexOf('\\') + 1, files[i].Length - (files[i].LastIndexOf('\\') + 1));
string file_type = file_name.Substring(file_name.LastIndexOf('.'), file_name.Length - file_name.LastIndexOf('.'));
//get icon image from system
Icon smallicon = Icons.IconFromExtension(file_type, Icons.SystemIconSize.Small);
Icon largelicon = Icons.IconFromExtension(file_type, Icons.SystemIconSize.Large);
small_img_list.Images.Add(smallicon);
large_img_list.Images.Add(largelicon);
}
main_fileView.SmallImageList = small_img_list;
main_fileView.LargeImageList = large_img_list;
foreach (string file in files)
{
string file_name = file.Substring(file.LastIndexOf('\\')+1,file.Length-(file.LastIndexOf('\\')+1));
System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
string file_size = fileInfo.Length/1000+" kB";
string file_datemodified = fileInfo.LastWriteTime.ToString();
string file_createDate = fileInfo.CreationTime.ToString();
string[] item_ = { file_name, file_size, file_datemodified, file_createDate };
ListViewItem item = new ListViewItem(item_,n);
n++;
main_fileView.Items.Add(item);
}
}
}
}
я пытаюсь заменить
ListViewItem item = new ListViewItem(item_,n);
с
ListViewItem item = new ListViewItem(file_name, n);
item.SubItems.Add(file_size);
item.SubItems.Add(file_datemodified);
item.SubItems.Add(file_createDate);
, но результат все тот же, перед каждым текстом в первом столбце есть пробелы, но изображение не отображается.
LAST EDITED
Наконец-то я понял, это моя ошибка, проблема не в этом пути кода, в другом пути кода создается новый ImageList, который я забыл закомментировать.перед тестом этот код работает нормально, СПАСИБО всем за ответ.
пс.Я не могу ответить на свой вопрос в течение 8 часов из-за слишком маленькой репутации