Al final lo he logrado, pongo el código por si a alguien le es de utilidad.
Código:
public void textPrecioCoste_KeyPress(object sender, KeyPressEventArgs e)
{
if (textPrecioCoste.Text.Contains(","))
{
if (!Char.IsDigit(e.KeyChar))
e.Handled = true;
if (e.KeyChar == '\b')
e.Handled = false;
}
else
{
if (!Char.IsDigit(e.KeyChar))
e.Handled = true;
if (e.KeyChar == ',' || e.KeyChar == '\b')
e.Handled = false;
}
}