Use || instead of && in first condition:
private void txtorate_KeyPress(object sender,KeyPressEventArgs e)
{
if(!char.Control(e.KeyChar) || (!char.IsDigit(e.KeyChar)) || e.KeyChar != '.')
if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
e.Handled = true;
}
I think it would help.