所以我想用2個按鈕創建一個列表框。 列表框應該顯示來自特定文件夾的文件(我回到這裏) 並且這兩個按鈕應該被稱爲「Set ..」(如在設置目錄中) 和Update(當列表將被刷新(因此,當我開始我的應用程序並轉到帶有列表框的窗體時,列表框是空的,當按下「更新」按鈕時,列表框顯示出來從位於我的硬盤地址文件(所以這是坐落在我的代碼靜態地址)。按顏色對列表框項目進行分類
它還發現7個不同的擴展名(文件類型),並列出他們都正確。
我的問題如下,我希望設置按鈕在第一次運行時爲用戶打開一個文件對話框,因此用戶自己可以選擇程序「索引或搜索」的文件夾(如果您願意的話)。然後,當他再次運行應用程序並找到列表框時,他只能按更新,列表框顯示他上次選擇的文件夾的內容。
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的東西,希望能夠實現Coloring特定的文件類型,並且它將所有的項目都變成了黑色,紅色或者我所說的任何東西。 但刪除代碼後,所有項目變成與列表框的背景顏色相同的顏色。所以我不能再看到實際存在的元素,除了側面彈出的滾動條(因爲我挑選的文件夾中有很多項目)
另外,我對編碼/視覺工作室不太擅長但是,正如我在1周前開始的那樣。 從VB 2010開始,然後去VS2013看看我是否設法解決一些問題,也與列表框有關。
如果我解釋得很差,讓我知道,我會更新更好的信息。 項目也是在VB 2010中首次創建,然後「遷移」或在VS 2013中打開。
列表框必須是'OwnerDraw',並使用'DrawItem'來更改每個項目所需的背景顏色。 – Plutonix 2014-09-12 12:20:34
OwnerDraw?固定或可變?他們是我在這裏得到的兩個選擇。我曾經在Normal上使用它,但是當我嘗試e.Graphics解決方案時,寫到我必須將其更改爲OwnerDrawFixed。 當您說Backcolor時,是指每個項目的文本顏色,還是文本週圍的顏色? – PiperMp3 2014-09-12 12:28:27
仔細看看你在'e'中看到的__ rich__參數集。你也可以看看ownerdraw ListViews的其他一些帖子。 (通常比ListBox更好的選擇,順便說一句)。這裏有幾個鏈接:[一個很好的ListView](http://stackoverflow.com/questions/25758052/nice-options-style-winforms-dialog-control/25761497#25761497)或[this](http:// stackoverflow.com/questions/24228379/listview-control-like-in-windows-explorer/24229846#24229846)或[that one](http://stackoverflow.com/questions/24569436/how-to-color-particular-項目的組合框/ 24598785#24598785).. – TaW 2014-09-12 13:35:04