¿Obtener el lapso de tiempo entre dos veces en C #?

Tengo dos cuadros de texto. Uno para un reloj en el tiempo y otro para el reloj. Los tiempos se pondrán en este formato:

Hours:Minutes

Digamos que me registré a las 7:00 AM y salí a las 2:00 PM.

Con mi código actual, obtengo una diferencia de 2 horas, pero debería ser de 7 horas. ¿Cómo haría eso en C #. Iba a convertir a las 24 horas, dejando que el usuario seleccionara AM o PM, pero me confundí.

Entonces, básicamente, ¿cómo calcularía la diferencia de horas entre las dos veces?

Intenté esto, pero obtuve 2 horas y no 7 cuando conecté los números.

DateTime startTime = Convert.ToDateTime(textBox1.Text);
DateTime endtime = Convert.ToDateTime(textBox2.Text);

TimeSpan duration = startTime - endtime;

Respuestas a la pregunta(4)

Su respuesta a la pregunta