Windowsエクスプローラのようにリストビュー
-
19-09-2019 - |
質問
あなたが見て、Windowsエクスプローラと同じメソッドを持っていますListViewコントロールを作成する方法を任意の良い例を知っていますか。
のコピー、貼り付け、表示サムネイル??
私は、ユーザーがディレクトリを変更できるようにすることができないので、私はListViewコントロールを使用しなければならない、と私はWindowsエクスプローラでこのオプションを無効にすることはできません(私は私がまたはダウンしているか、パスを入れるまで行くためにクリックできる場所を意味します。
解決
私は苦情を聞いたことがないに、このプロジェクトを推薦してきましたそれ。ビスタ以来、それはWindowsのAPIコードパックnoreferrer"> FileOk単に実装に対してその費用を計量考えてみましょうイベントとパスを好きではない場合は、[OK]ボタンのクリックをキャンセルします。
他のヒント
これは何の簡単な作業ませんが、あなたはこのプロジェクト。それはVB.Netでだが、それはインスピレーションの源となる恐れがあります。
私は何かを書いたが、私はこのアイコンのパスを取得するにはアイコンをクリックでイベントを追加する方法を知りません。
path = folderBrowserDialog1.SelectedPath;
ImageList imageList1 = new ImageList();
imageList1.ImageSize = new Size(256, 256);
imageList1.ColorDepth = ColorDepth.Depth24Bit;
string[] iconFiles = Directory.GetFiles(path, "*.jpg");
foreach (string iconFile in iconFiles)
{
try
{
imageList1.Images.Add(Image.FromFile(iconFile));
}
catch
{
MessageBox("Error","");
}
}
this.listView1.View = View.LargeIcon;
this.listView1.LargeImageList = imageList1;
for (int j = 0; j < imageList1.Images.Count; j++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = j;
this.listView1.Items.Add(item);
}
??このコードを再構築する方法
あなたはジョグファイルをロードし、それからサムネイルを作成するためにGraphics.drawImageを使用することができます。これは、画像ファイルのみのために動作します。
他の種類のファイルのサムネイルを取得するには、シェルIExtractIconインタフェースを使用する必要があります。
コピー/ペーストするため、ファイルのフルパスとDataFormats.FileDrop形式を使用します。
<時間>既製の代替のために、私たちのファイルビューの制御を参照してください。