There's no point using IsNullOrEmpty because the Text property of a control can NEVER return a null reference. You only have to check for an empty string. You would use something like this in the Validating event handler:
Code:
if (this.txtFirstName.Text == string.Empty)
{
e.Cancel = true; //This line prevents the control losing focus.
MessageBox.Show("Please enter a value for First Name.");
}
Note that this does not stop the user entering whitespace only. I would also recommend using code like this in the Leave event:
Code:
//Remove leading and trailing whitespace.
this.txtFirstName.Text = this.txtFirstName.Text.Trim();
The Leave event is raised before the Validating event so this will turn a whitespace only value into an empty string before validating.