سؤال

هل تعرف أي مثال جيد كيفية إنشاء ListView والتي ستبدو ولها نفس الأساليب مثل Windows Explorer.

النسخ، لصق، عرض الصور المصغرة؟

يجب أن أستخدم ListView لأنني لا أستطيع السماح للمستخدم بتغيير الدليل، ولا يمكنني تعطيل هذا الخيار في مستكشف Windows (أعني المكان الذي يمكنني النقر فوقه لأعلى أو لأسفل أو وضعه.

هل كانت مفيدة؟

المحلول

لقد التوصية هذا المشروع, ، لم يسمع أبدا شكوى حول ذلك. لاحظ أن متصفح قابل للتضمين متاح منذ نظام التشغيل Vista، يتم لفه فئة ExplorerBrowser المتاحة في حزمة رمز واجهة برمجة التطبيقات.

احذر أن هذا النوع من الحلول وضع الكثير من التبعيات في مشروعك. النظر في وزن هذه التكلفة ضد تنفيذ ببساطة OpenFileDialog حدث filek. وإلغاء زر موافق انقر إذا كنت لا تحب المسار.

نصائح أخرى

انها ليست مهمة تافهة، ولكن يمكنك إلقاء نظرة على هذا المشروع. وبعد إنه في 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 لتحميل ملف JOG وإنشاء صورة مصغرة منه. هذا سوف يعمل فقط لملفات الصور فقط.

للحصول على الصور المصغرة لأنواع الملفات الأخرى، يجب عليك استخدام واجهة Shell Iexcracticon.

بالنسبة للنسخ / لصق، استخدم تنسيق DataFormats.filedrop مع المسارات الكاملة للملفات.


للحصول على بديل جاهز، انظر لدينا عرض ملف مراقبة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top