كيف يمكنني التحكم خانات الاختيار في .صافي الأشكال.TreeView?
سؤال
لدي .صافي تطبيقات سطح المكتب مع TreeView باعتبارها واحدة من عناصر واجهة المستخدم.
كنت تريد أن تكون قادرة على متعدد حدد أن TreeView, فقط لا تعمل على الإطلاق.
حتى انا إضافة خانات إلى شجرة مشكلتي هي فقط بعض البنود التي يتم اختيارها و التي لا يستطيع دائما تتالي التحديدات.
هل هناك أي طريقة تعطيل أو إخفاء بعض خانات أثناء عرض الآخرين ؟
المحلول
السلوك الافتراضي من TreeView هو أنه عندما خانات يتم تعيين الخاصية إلى true ، أن خانات الاختيار سيظهر لجميع TreeNodes.
السلوك الذي كنت أبحث عنه - إلى تعطيل أو إخفاء بعض خانات - هو العرف تعديل السلوك العادي.يمكنك إنشاء تطبيق مخصص TreeView أو TreeNode أن تجاوز السلوك الافتراضي.شيء واحد حاول استخدام TreeView.StateImageList مكان الإقامة.بعض المواقع للتحقق لمزيد من المعلومات:
- انظر هذا المنصب إلى منتديات MSDN أن يذهب من خلال تنفيذ غرار ما تحاول.
- CodeProject: ثلاثي الدولة TreeView
- CodeProject: كيفية التعامل مع العرف عقدة دولة الصور في TreeView (مثلا ، ولايات خانات)
نصائح أخرى
كان عندي مشكلة مشابهة في محرر كتبت مؤخرا.في النهاية, لقد استخدمت TreeNode
's BackColor
خاصية تحديد اختيار الدولة من العقدة.ثم كتب معالج SelectionChanged
حالة التحقق من حالة التحول/مفاتيح التحكم لتحديد ما إذا كانت العقدة المحددة إضافة/إزالة من اختيار أو إنشاء مجموعة جديدة.كان هناك أيضا Generic::List<>
من العقد التي تم المحدد حاليا للقضاء على أي شجرة البحث.
لماذا لا .صافي يكون multiselect treeview?هناك العديد من الاستخدامات واحد تحول على خانات في treeview جدا رديء البديلة.