Πολύ συγκεκριμένα: Έχω ένα
treeview στο οποίο θέλω να αλλάζω κατά το run-time την ιδιότητα των
checkboxes απο
true σε
false. Δηλαδή ανάλογα τις συνθήκες, να εμφανίζονται και να εξαφανίζονται τα
checkboxes. Φυσικά ανά πάσα στιγμή το treeview έχει μια συγκεκριμένη μορφή που έχει φτιάξει ο χρήστης, με κάποια nodes να είναι expanded και άλλα collapsed (Πολλά τον αριθμό). Όταν αλλάζω απο false σε true όλα μένουν ως έχουν και απλά εμφανίζονται δίπλα τα checkboxes. Το πρόβλημα μου είναι όταν αλλάζω
από true σε false όπου αυτόματα (απο την VB) ακολουθεί collapse ολοκληρου του treeview με αποτέλεσμα να χάνεται η υπάρχουσα μορφή ανοιγμενων/κλεισμένων nodes και να το καθιστά εξαιρετικά άβολο για το χρήστη. Η συγκεκριμένη συμπεριφορά εξάλλου αναφέρεται και στο documentation απο το οποίο παραθέτω:
Note: |
When setting the CheckBoxes property
at run time, the TreeView
handle is recreated (see Control..::.RecreateHandle) to update the control's appearance.
This causes all tree nodes to be collapsed, with the exception of the selected
TreeNode.
|
Ακριβώς η περιπτωσή μου. Στην ουσία τώρα, προσπάθησα να σκεφτώ έναν τρόπο να εμποδίζω το collapse όταν τα checkboxes είναι true, χρησιμοποιώντας την BeforeCollapse μέθοδο αλλά χωρίς επιτυχία, ίσως επειδή δεν λαμβάνει καν τόπο διαδικασία collapse αλλά handle recreation κατευθείαν. Και εδώ έρχεται το ερώτημα μου, εφόσον δεν υπάρχει κάποια αντίστοιχη "BeforeHandeRecreation" μέθοδος στο treeview, μπορώ να το εμποδίσω με κάποιον άλλο τρόπο?