Hola buenas, prueba con esto
textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.SelectedRows[0].Cells[3].Value)).ToString();
Con "dataGridView2.SelectedRows[0].Cells[3].Value" obtienes el valor de la celda 3 de la fila seleccionada.
Si tienes configurada la tabla que se pueda seleccionar una celda, deberias obtener el índice de esa fila y luego obtener el valor de la celda.
textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.Rows[dataGridView2.SelectedCells[0].RowIndex].Cells[3].Value)).ToString();
Luego si quieres obtener el valor de la celda desde los dos casos, prueba con esto
if (dataGridView2.SelectedRows.Count == 0)
{
textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.Rows[dataGridView2.SelectedCells[0].RowIndex].Cells[3].Value)).ToString();
}
else
{
textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.SelectedRows[0].Cells[3].Value)).ToString();
}
Bueno, ya contaras si funcionó. Saludos