سؤال

أنا أستخدم نماذج ويندوز TreeView السيطرة في البرنامج الخاص بي. أرغب في السماح للمستخدم بتحديد عقود متعددة عند نفس المستوى عن طريق سحب مؤشر الماوس حولها (تسمى أيضا "Lasso"). لا أعتقد أن المعيار TreeView يسمح بذلك.

سؤالي هو ما سيكون أفضل طريقة لتحقيق ذلك؟ هل يجب علي كتابة سلوك اختيار مخصص الخاص بي في سيطرة مخصصة أو مشتقة؟ من أين أبدأ؟

لا أحتاج إلى تفسير مفصل. مجرد دفع صغير في الاتجاه الصحيح.

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

المحلول

هذا لن يكون من السهل القيام به مع WinForms القياسية TreeView مراقبة. ال TreeView التحكم يدعم فقط اختيار واحد لكل شجرة. لا يمكن في وقت واحد اختيار عقد متعددة في الشجرة.

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

نصائح أخرى

فكر في تنفيذ تحديد متعدد في عنصر تحكم يدعم مجموعة مختارة متعددة مثل ListView. إذا اتبعت المعايير التي تفهم معظم مستخدمي Windows، فسوف ينتهي بهم الأمر إلى حل أسهل في تنفيذها وأسهل في الاستخدام.

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

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