Классифицировать элементы списка по цвету
Поэтому я пытаюсь сделать список с 2 кнопками. Listbox должен отображать файлы из определенной папки (я возвращаюсь к этому), а две кнопки должны называться «Set ..» (как в папке set) и Update (как список будет обновляться (что-то я делаю) каждый раз, когда запускается форма Windows.
Итак, на данный момент, когда я запускаю свое приложение и перехожу к форме со списком, список пуст. При нажатии «Обновить» окно «Список» получает файлы с адреса, расположенного на моем жестком диске (так что это статический адрес, расположенный в моем коде).
Он также находит 7 различных расширений (Filetypes) и перечисляет их все правильно.
Моя проблема заключается в следующем: я хочу, чтобы кнопка Set открывала диалоговое окно «Файл» для пользователя в режиме первого запуска, чтобы пользователь сам мог выбрать, какую папку программа «Индексирует или ищет», если вы захотите. И затем, когда он снова запускает приложение и находит список, он может нажать только «Обновить», и в списке отображается содержимое папки, которую он выбрал в прошлый раз.
Кнопка Set - сейчас ничего не делает в моем коде.
Во-вторых, я хочу, чтобы каждый тип файла был помечен или окрашен в определенный цвет.
Подобно; .txt должен быть синим, .jpg красным, т. д ..
Запуск Visual Studio 2013, если это поможет.
Кроме того, при проверке моего кода, если у вас есть какие-либо предложения, как я могу улучшить код, сделать его проще, короче и просто изменить что-то, чтобы избежать дублирования кодов, пожалуйста, дайте мне знать.
Вот из дизайна в VS2013
Код:
Private Sub Form_Load(sender As Object, e As EventArgs) Handles Me.Load
FolderBrowserDialog1.SelectedPath = "xxx\xxx\xxx\xxx"
System.IO.Directory.GetCurrentDirectory()
Private Sub updateButtonGame_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles updateButtonGame.Click
If FolderBrowserDialog1.SelectedPath = "xxx\xxx\xxx\xxx" Then
ListFiles(FolderBrowserDialog1.SelectedPath)
End If
End Sub
Private Sub ListFiles(ByVal folderPath As String)
filesListBox.Items.Clear()
Dim fi = From f In New IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath).GetFiles().Cast(Of IO.FileInfo)() _
Where f.Extension = ".z64" OrElse f.Extension = ".nds" OrElse f.Extension = ".BIN" OrElse f.Extension = ".smc" OrElse f.Extension = ".ISO" OrElse f.Extension = ".nes" OrElse f.Extension = ".gb"
Order By f.Extension
Select f
For Each fileInfo As System.IO.FileInfo In fi
filesListBox.Items.Add(fileInfo.Name)
Next
End Sub
Другое дело, это более необязательно ..
Мой список полностью черный, поэтому я хочу, чтобы «Элементы» в списке были светло-серыми.
Я поиграл с чем-то, что называется e.Graphics, в надежде добиться раскраски определенного типа файла, и он превратил ВСЕ элементы в черный, красный или любой другой. Но после удаления кода все элементы становятся того же цвета, что и цвет фона списка. Таким образом, я больше не вижу элементов, которые на самом деле находятся там, кроме полосы прокрутки, появляющейся сбоку (поскольку в папке, которую я выбрал, находится много элементов)
Кроме того, я пока не очень хорошо разбираюсь в программировании и визуальной студии, так как начал работать около недели назад. Начал с VB 2010, а затем перешел на VS2013, чтобы посмотреть, удалось ли мне исправить некоторые проблемы, также связанные со списком.
Если я объяснил довольно плохо, дайте мне знать, и я буду обновлять с лучшей информацией. Проект также был сначала создан в VB 2010, а затем «перенесен» или открыт в VS 2013.