Question: I have a label that shows the file name .. I had to set `AutoSize` of the label to `False` for designing.  

So when the file name text got longer than label size.. it got cut like in the picture.

![enter image description here](https://i.stack.imgur.com/M9zkb.jpg)

```
label1.Size = new Size(200, 32);
label1.AutoSize = false;

```

How do I re-size the text automatically to fit the label size, when the text is longer than the label size?

Answer: 
You can use my code snippet below. System needs some loops to calculate the label's font based on text size. 

```
while(label1.Width < System.Windows.Forms.TextRenderer.MeasureText(label1.Text, 
     new Font(label1.Font.FontFamily, label1.Font.Size, label1.Font.Style)).Width)
{
    label1.Font = new Font(label1.Font.FontFamily, label1.Font.Size - 0.5f, label1.Font.Style);
}

```
With inspiration from @bnguyen82 i came up with something that works all the way.

```
public static void ScaleLabel(Label label, float stepSize = 0.5f)
{
    //decrease font size if text is wider or higher than label
    while (lblTextSize() is Size s && s.Width > label.Width || s.Height > label.Height)
    {
        label.Font = new Font(label.Font.FontFamily, label.Font.Size - stepSize, label.Font.Style);
    }

    //increase font size if label width is bigger than text size
    while (label.Width > lblTextSize().Width)
    {
        var font = new Font(label.Font.FontFamily, label.Font.Size + stepSize, label.Font.Style);
        var nextSize = TextRenderer.MeasureText(label.Text, font);

        //dont make text width or hight bigger than label
        if (nextSize.Width > label.Width || nextSize.Height > label.Height)
            break;

        label.Font = font;
    }

    Size lblTextSize() => TextRenderer.MeasureText(label.Text,
        new Font(label.Font.FontFamily, label.Font.Size, label.Font.Style));
}

```

PS: In order for this to work the label needs to have `AutoSize = false` and either to be `docked` or `anchored`.