سؤال

لدي مشروع WinForm يسرد جميع الملفات في مجلد محدد. يسمح للمستخدم بتحديد وجهة جديدة لكل ملف، وعندما اختار المستخدم الوجهات لجميع الملفات التي يرغب في نقلها، فإنه يتحرك الملفات، واحدا تلو الآخر.

خطوتي التالية هي، أحتاج إلى عرض نموذج تأكيد عند نقل الملفات، وأضف اسم كل ملف وجهة إلى نموذج تأكيد كما يتم نقله.

سؤالي هو: كيف يمكنني إضافة المزيد من النص إلى عناصر التحكم في نموذج تأكيد بعد تحميلها بالفعل (باستخدام confirm.showdialog() من شكلي الآخر، دون أي تفاعل المستخدم؟ أتصور أنني بحاجة إلى القيام بذلك من النموذج الأصلي، لأنه يحتاج إلى عرض كل واحد عند بدء تشغيل هذا الملف، لكنني منفتح على أي اقتراحات :)

تيا

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

المحلول

كلا من الإجابات أعلاه جيدة.

إذا فهمت بشكل صحيح، فإن النموذج الرئيسي الخاص بك سيسمح للاحد لتحديد ملفات متعددة، ثم حدد وجهتهم وإطلاق عملية النقل. إذا كان هذا ما تحتاجه، سأقوم ببساطة بما يلي:

  1. قم بإنشاء نموذج جديد من شأنه إبلاغ العملية للمستخدم، دون الحاجة إلى أي تفاعل، ولكن فقط لإبلاغ المستخدم بالملف الذي يتم نقله؛
  2. قم بإنشاء مثيل كائن BackgrownWorker، ثم استدعاء طريقة نقل الملفات من طريقة BackgroundWorker.dowork () (داخل النموذج الرئيسي الخاص بك)؛
  3. ضع العلم الخاص بك على أسماء المعلومات الأساسية لإبلاغ التقدم المحرز، ثم اتصل بمعالجات الأحداث BackgrowardWorker.ReportProgress () من خلال طريقة نقل الملفات الخاصة بك؛
  4. استخدم قائمة أسماء الملفات التي تم إنشاؤها مسبقا للحصول على اسمها وإبلاغها إلى نموذج حوار نقل الملفات الخاص بك أثناء تغيير الملف. يجب أن يقوم قاعدة بيانات بسيطة عبر الملصق بالخدعة أثناء نقل عملة العملة الخاصة بك إلى العنصر التالي داخل القائمة، أو يمكنك استخدام أكثر بساطة فهرس القائمة للحصول على اسم الملف في مؤشر معين؛
  5. عندما يقوم المستخدم بإطلاء عملية النقل، احصل على أسماء الملفات الخاصة بك وحسبها، ثم قم بتعيين القيمة القصوى للمستخدمين لديك إلى عدد الملفات التي لديك.
  6. تأخذ الأسلوب BackgroundWorker.ReportProgress () قيمة عدد صحيح كوسيطة لها، إذن، مع معالج الأحداث المتقدمة () الخاص بك، ستتمكن من عرض اسم الملف الذي يتم نسخه إلى نافذتك عن طريق الحصول على اسم الملف في موقع الفهرس، الفهرس الذي قدمته طريقة ReportProgress () الخاصة بك.

سيسمح لك ذلك باستخدام أداء مؤشر ترابط إضافي، دون "تجميد" مؤشر الترابط الرئيسي الذي تم إنشاؤه منه، ثم ستتمكن من إجراء نقل الملف الخاص بك في وقت واحد، وعرض اسم الملف على شكل التقدم، أثناء توضيح المستخدم الخاص بك بصريا ما هو التقدم حول عنصر تحكم ProgressBar الخاص بك، وعرض اسم الملف كما هو مطلوب.

هل هذه المساعدة؟

نصائح أخرى

لن يكون أكثر بساطة لجعل نموذج آخر بدلا من استخدام حوار مسبقا؟

بهذه الطريقة يمكنك فقط الحصول على مربع النص الذي تقوم بملكته وتحديثه

يمكنك القيام بكل الكود لإظهار نقل الملفات داخل نافذة حوار تأكيد.

ولكن لإعطاء حل أكثر اكتمالا، هل يمكن أن تخبرني كيف تقوم بتجمع معلومات نقل الملفات.

سيكون الحل الجيد هو تجاوز قائمة الملفات المراد نقلها ثم قم بتنفيذ الدالة المتحركة في مربع الحوار.

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