There is no operation which allows your to use a "-=" operator on a string: concatenation is simple with "+=", as it's obvious you want the second string appended to the end of the existing data. But ... what should "-=" so? Remove all instances of the new string? Trim the end? Something else?
As a result, it's not a defined operator for strings.
If you want to take a text box containing a number and reduce it by one, you have to use int.TryParse to convert the text to a number (reporting problems if any), subtract one, then converter the result back to a string:
int qty;
if (!int.TryParse(TxtQty.Text, out qty))
{
... report problems ...
return;
}
TxtQty.Text = (qty - 1).Tostring();
VB makes guesses about what you wanted to do and converts types willy-nilly (and causes a lot of problems in the process): C# doesn't baby you and assume you are an idiot - it wants you to be precise about what you want, and tell it exactly what to do. That way, problems like this are caught at compile time instead of run time, which is much better for reliability purposes.