2008-10-06 5 views
1

Mon application VB.Net Winforms est un outil permettant d'éditer des données hiérarchiques dans une arborescence, puis de les stocker dans une base de données. J'utilise un contrôle treeview.Comment puis-je modifier la limite de 259 caractères dans WinForms Treeview LabelEdit?

Le contenu est glissé d'autres documents sur les écrans ou les nœuds peuvent être édités directement. Si je modifie directement le champ de la base de données et que je saisis un peu de contenu (un millier de caractères ou plus!), L'arborescence l'affichera volontiers .. mais, lorsque je fais glisser, les données sont tronquées à 259. personnages. Si je modifie directement, la fenêtre d'édition maximale est également de 259 caractères. Il semble que ce soit un nombre vraiment étrange à arrêter, donc je me demande - d'où vient cette taille, et puis-je la changer par programmation?

Répondre

2

Je recommanderais d'adopter une approche différente. Vous ne voulez probablement pas montrer à vos utilisateurs tous les 10000 caractères d'un document dans leur TreeNode, alors créez une classe de stockage de données personnalisée avec des propriétés comme Name et Content pour stocker le document et son titre. Ajoutez votre contenu à la propriété Content et un titre ou quelque chose de significatif à la propriété Name puis ajoutez l'objet à la propriété Tag de l'objet TreeNode.

Dim mynode As New TreeNode 
Dim SomeBigCustomObject as New MyContentStorageObject(name,content) 
mynode.Text = SomeBigCustomObject.Name 
mynode.Tag = SomeBigCustomObject 
TreeView1.Nodes.Add(mynode) 

Vous pouvez alors récupérer l'objet lorsqu'un nœud est sélectionné (en utilisant l'événement AfterSelect) comme ceci:

dim ContentStorageObject As MyContentStorageObject = CType(e.Node.Tag, MyContentStorageObject) 
dim content as string = ContentStorageObject.Content 

Si vous devez modifier le texte, je serais alors soit apparaître une éditeur de boîte de dialogue ou envoyez les données stockées dans le contenu dans une zone de texte de votre formulaire pour modification. Vos utilisateurs apprécieront probablement de ne pas avoir à tout saisir dans l'éditeur de noeud treeview.

C'est une explication rapide et sale, mais l'essence est "utiliser la propriété .Tag". Bonne chance.

+0

Voici ce que j'ai fini par faire: afficher un texte plus court et ajouter une entrée 'tag' permettant de charger le contenu et de l'insérer dans une zone de texte multiligne séparée - plus les points, plus vite et pour repenser l'interface utilisateur. – TheoJones

Questions connexes