You can also check for double.tryparse inside your code since you want to accept one decimal place.
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
double dblValue;
e.Handled = double.tryparse(txtQty.Text,out dblValue);
}
this ensures that the value entred in the text box is a valid decimal number and protects from additional ....( dots :))