ОК, я обнаружил что-то важное. Кажется, это работает хорошо, пока я не добавлю точку останова в метод Inner_MouseDown. Если отладчик останавливается, событие Click не возникает. Если я просто уберу точку останова, она будет работать нормально. Та же проблема, если я показываю окно сообщения в методе Inner_MouseDown. Если я просто увеличу некоторую временную переменную, это будет хорошо работать.
Но это отвечает на мой вопрос, почему он не работает, даже если должен. На самом деле это работает, проблема в другом месте.