Hola
doword, a qué te refieres con que es "dinámico"?? si te refieres a cambiarle de texto segun veo tu caso sería obtener el width cuando se le hace el cambio de texto. Ahora si tu creas el boton por código durante la ejecución del programa y deseas hallar el width de este cuando se le cambia el texto, tedrías que hacer lo siguiente, te dejo este ejemplo haber si te es de ayuda :
Agregas 1 Textbox, 1 label y 1 boton al Winform
Código C:
Ver originalpublic partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Button miBoton = new Button();
miBoton.Name = "btnBoton";
miBoton.Text = "Soy un Boton Dinamico";
miBoton.AutoSize = true;
miBoton.Location = new Point(200, 200);
this.Controls.Add(miBoton);
}
private void button1_Click(object sender, EventArgs e)
{
this.Controls["btnBoton"].Text = textBox1.Text;
//despues de cambiarle el texto hallamos el ancho actual
label1.Text = this.Controls["btnBoton"].Width.ToString();
}
}
PDT: Te lo mostré en C# ya que no especificas el tipo de lenguaje con el cual trabajas. Saludos!

.