Obtendo o intervalo de tempo entre duas vezes em c #?

Eu tenho duas caixas de texto. Um para um relógio no tempo e outro para o relógio. Os tempos serão colocados neste formato:

Hours:Minutes

Digamos que eu tenha marcado as 7:00 da manhã e ficasse no horário marcado às 2:00 da tarde.

Com o meu código atual, recebo uma diferença de 2 horas, mas deve ser de 7 horas. Como eu faria isso em c #. Eu ia converter para as 24 horas, deixando o usuário selecionar AM ou PM, mas fiquei confuso.

Então, basicamente, como eu calcularia a diferença de horas entre os dois tempos?

Eu tentei isso, mas tenho 2 horas e não 7 quando eu liguei os números.

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

TimeSpan duration = startTime - endtime;