У меня была такая же проблема. Я решил создать простую функцию для перемещения метки, которую я вызывал после любого события или кода, которые меняли размер метки.
Введите название метки, которую вы хотите увеличить влево, и координату X правого конца метки. Затем вы вызываете эту функцию после любых изменений метки.
private void repositionLabel(Label lab, int endPoint)
{
lab.Left = endPoint - lab.Width;
}
Например, у вас есть метка с именем myLabel, расположенная в (75,75), в настоящее время она имеет ширину 25, и вы всегда хотите, чтобы она заканчивалась в (100,75). Затем, когда это произойдет:
myLabel.Text = "blah blah blah blah blah blah";
затем вы следуете за изменением текста:
repostitionLabel(myLable, 100);
Это будет выглядеть как ярлык, развернутый влево.