Чтобы узнать, сколько времени прошло между двумя моментами (дата из `dateTimePicker` и текущее время), вы можете использовать метод `Subtract`, как вы уже делаете, но с немного изменённым подходом для форматирования вывода. Если вам нужно вывести разницу во времени без миллисекунд, вы можете использовать `TimeSpan` и его свойства.
Вот пример того, как это можно сделать:
```csharp
DateTime localTime = DateTime.Now;
DateTime selectedTime = dateTimePicker2.Value;
// Вычисляем разницу во времени
TimeSpan timeDifference = localTime.Subtract(selectedTime);
// Форматируем вывод без миллисекунд
textBox7.Text = string.Format("{0:D2}:{1:D2}:{2:D2}",
(int)timeDifference.TotalHours,
timeDifference.Minutes,
timeDifference.Seconds);
// Проверка, превышает ли разница один час
if (timeDifference.TotalHours > 1)
{
// Ваш код для обработки случая, когда разница более одного часа
MessageBox.Show("Разница во времени больше одного часа.");
}
```
### Объяснение кода:
1. **Вычисление разницы**: `localTime.Subtract(selectedTime)` возвращает объект `TimeSpan`, который содержит информацию о разнице во времени.
2. **Форматирование**: В строке форматирования `string.Format("{0:D2}:{1:D2}:{2:D2}", ...)` мы используем форматированные строки для вывода часов, минут и секунд. `D2` формирует числовой вывод с двумя знаками, добавляя ведущий ноль, если это необходимо.
3. **Проверка на час**: Вычисляя `timeDifference.TotalHours`, мы можем легко проверить, превышает ли разница один час.
Теперь ваше приложение будет правильно отображать разницу времени между двумя моментами без миллисекунд, а также сможет проверить, превышает ли эта разница один час.