> -- Цитата:
> Если форма открывается как OpenToolDialog, то при нажатии на кнопку на форме в лог пишется - "text controller"

Объяснение простое: процедуры Focus() возвращает так называемыйцелевойфокус, то есть, фокус среди окон документов и aux-окон. Tool-окно - этопередний фокус. Т.е. в случае tool-диалога вы получали контроллер лежащего под ним текста.

Так сделано специально, чтобы инструментальные окна легко обнаруживали целевые фокусы, к которым их применяют. Почитайте документацию Controllers.

Достать передний фокус тоже можно. Скачайте нашу библиотеку Mt (http://sources.metasystems.ru/mt/) и посмотрите MtBrowser.FrontFocus().