私のプログラムはファイル内で検索を実行し、文字列が見つかると、別の文字列の間でそれらをフィルタリングし、リストボックスに対応する色で表示します2番目のフィルタ)と良いものの緑、リストボックスはlocation \ fileを表示し、別の行はその行を示します。C#listbox、ownerdrawfixed、選択された項目を取得
今私は私のコードfilebut場所\にdubbelclickingのファイルがownerdrawfixedでは動作しません開きたい(私は色のために欲しい/必要WICH) 私は、文字列ということを学びました
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
}
を試してみました"filename"に "Datscan.Form1 + MyListboxItem"が含まれるようになりました。
drawmodeをnormalに設定する方法の回答が見つかりましたが、ownerdrawfixedに必要です。
これは機能しません。 'それは動かないのですが? 'どのようにダブルクリックイベントハンドラを設定しますか? s *とgigglesとトラブルシューティングのためだけに 'ownerdrawfixed'を使わないとうまくいくのですか? –
ownerdrawとは関係ありません。 MyListboxItemクラスはToString()をオーバーライドする必要があります。したがって、listBox1.SelectedItem.ToString()を使用することができます。 ownerdrawには厳密には必要ありませんが、そうでない場合は、CType(listBox1.selectedItem、MyListboxItem).Filenameのようなキャストを使用する必要があります.Filenameは正確であると見なします(見えません)。 ToString()をオーバーライドするのが最適です。 –