Hej Hej, Tack! Hej,Klippa nodtexten i en TreeView
Jag har en TreeView som byggs från en mappstruktur på filsystemet.
Nu vill jag kunna begränsa bredden på min TreeView till ett viss bredd och
sedan klippa ned eventuell nod-text med tre punkter (...).
Detta för att inte få en alldeles för konstig meny. Jag tänker lägga överskjutande text
i en ToolTip.
Visserligen går det att använda NodeWrap men då bryts bara texten till en ny rad
Jag vill ersätta överskjutande text med (...)
Exempel
- ROOT
------ PARENT
-------------CHILD WITH LONG NAME
Här vill jag klippa ned "CHILD WITH LONG NAME" till en specifik bredd
så att resultatet ex blir.
- ROOT
------ PARENT
-------------CHILD WITH L...
och att tooltipen innehåller hela namnet.
Tacksam för svar
// DanielSv: Klippa nodtexten i en TreeView
Mitt hetaste tips måste nog vara att använda DataBound-eventet, i det här fallet TreeNodeDataBound.
Exempel:
public void myTree_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
if (e.Node.Text.Length > 5)
{
e.Node.Text = e.Node.Text.Substring(0, 5) + "...";
}
}
/m
Sv:Klippa nodtexten i en TreeView
Jag upptäckte nu själv att det faktiskt finns en Node.Text och en Node.Value.
Går det på något sätt att göra namnet kopplad till en viss bredd?
Exempelvis vill jag kanske klippa hårdare i noder längre ned i strukturen
eftersom de tar upp en större plats.
// DanielSv: Klippa nodtexten i en TreeView
Den enklaste lösningen är nog att använda sig utav Depth (e.Node.Depth) för att kolla i vilken nivå/level som noden tillhör och anpassa e.Node.Text efter det.