Me parece que te estás complicando demasiado las cosas.
Si el valor lo tienes en una variable de tipo Double, lo único que necesitas es un objeto IFormatProvider para eso:
Código vb:
Ver originalDim nFI As NumberFormatInfo = New CultureInfo("en-US", False).NumberFormat
Dim oDato As Double = (Convert.ToInt32(TextBox1.Text) + Convert.ToInt32(TextBox2.Text)) / (Convert.ToInt32(TextBox2.Text) * -1)
TextBox3.Text = oDato.ToString("$ ##,###,##0.00", nFI)
Personalmente no entiendo mucho para qué ese "-1" en una parte, ni cómo haces para obtener los valores que usarás finalmente, pero esa es otra historia.
Dato Final: En Visual Studio 2005 y posteriores ya existe un FormattedTextBox, que te evita todas estas cosas.