in C# muss es doch auch die Möglichkeit geben von der Canvas (wird dort eventuell anders heißen) abzufragen, wie breit Text der dort drauf erscheint ist.
Unter Objectpascal würde es also so aussehen (funktioniert auch wenn das Label nicht am rechten Rand des Forms ist):
Delphi-Quellcode:
procedure SetLabelCaption(ALabel: TLabel; ACaption: String);
var LNewWidth,
LOldWidth : Integer;
begin
LOldWidth := ALabel.Canvas.TextWidth(ALabel.Caption);
LNewWidth := ALabel.Canvas.TextWidth(ACaption);
ALabel.Caption := ACaption;
ALabel.Left := ALabel.Left + (LOldWidth - LNewWidth);
end;