0
我的程序在文件中運行搜索,當找到字符串時,它會在另一個字符串之間過濾它們,然後在相應顏色的列表框中顯示它們(紅色代表壞行由第二個過濾器),綠色爲好,列表框顯示位置\文件,並在不同的行上顯示行本身。c#listbox,ownerdrawfixed,獲取所選項
現在我想通過dubbelclicking上的位置\打開文件filebut我的代碼不工作在ownerdrawfixed(至極,我需要/想的顏色) 我試圖
string filename = listBox1.GetItemText(listBox1.selectedItem);
if (file.exists(filename))//to check if i click on a filename or on a line
{
try
{
System.diagnostics.process.start("scite.exe",filename); //open file with scite
}
catch
{
system.Diagnostics.Process.start(filename);//open file with windows default
}
我瞭解到,串「文件名」現在包含「Datscan.Form1 + MyListboxItem」
找到了很多答案,如何使用drawmode設置爲正常,但我需要它在ownerdrawfixed。
這是什麼不起作用?當它不起作用時會發生什麼?你如何設置雙擊事件處理程序?如果你不使用'ownerdrawfixed',它會工作嗎?只是爲了S *和咯咯,並排除故障。 –
與ownerdraw無關。你的MyListboxItem類應該覆蓋ToString()。所以你可以使用listBox1.SelectedItem.ToString()。對於ownerdraw來說不是必須的,但是如果你不這樣做,那麼你必須使用類型轉換,比如CType(listBox1.selectedItem,MyListboxItem).Filename,假設文件名是準確的(我們看不到它)。重寫ToString()是最好的。 –