Path Display in Label

.net, c#, path, winforms

Solution

Use TextRenderer.DrawText with TextFormatFlags.PathEllipsis flag

void label_Paint(object sender, PaintEventArgs e)
{
  Label label = (Label)sender;
  TextRenderer.DrawText(e.Graphics, label.Text, label.Font, label.ClientRectangle, label.ForeColor, TextFormatFlags.PathEllipsis);
}

Your code is 95% there. The only problem is that the trimmed text is drawn on top of the text which is already on the label.

Yes thanks, I was aware of that. My intention was only to demonstrate use of `DrawText` method. I didn't know whether you want to manually create event for each label or just override `OnPaint()` method in inherited label. Thanks for sharing your final solution though.

Problem

Are there any automatic methods for trimming a path string in .NET? For example: ``` C:\Documents and Settings\nick\My Documents\Tests\demo data\demo data.emx ``` becomes ``` C:\Documents...\demo data.emx ``` It would be particularly cool if this were built into the Label class, and I seem to recall it is--can't find it though!

Original source