The ASP.NET Label control is way overused. In most situations the Literal control is a much better choice. Actually the main reason Microsoft included the Label control is to use it as a label together with input type="text" (aka a TextBox control).
The main difference between the two controls is that the Label control render any text inside a span
control which in most cases is unnecessary and complicates any CSS styling you may be trying to use.
In most cases, you can replace the Label with a Literal and achieve the same results.
However a nice feature that seems to be ignored by most .NET programmers is the Label controls AssociatedControlID property. This property is used to "link" the text of the Label control to a specific TextBox. Check out the following code:
Which gives this result in a browser:
The above Label control has AssociatedControlID="TextBox1" - This associates the
label "Click me to give focus to textbox" with the textbox control, so
when you click on label, the textbox gets focus. Really nice and overlooked feature of the Label control.