2010-06-25 7 views
4

У меня есть форма, которая появляется из дополнения excel, написанного с VSTO. Я бы хотел, чтобы форма всегда оставалась над таблицей Excel, но все же позволяет пользователю взаимодействовать с листом под ней.Windows Forms выше Excel

Конструктор форм включает в себя this.TopLevel = true;, но форма по-прежнему исчезает за электронной таблицей при выборе ячейки.

Неужели кто-нибудь еще сталкивался с этой проблемой и нашел обходное решение?

ответ

4

У формы уже установлен TopLevel на true. Вы хотите TopMost.

P/Invoking SetParent() было бы лучше, но получить требуемый дескриптор окна не так-то просто. Возможно, Process.GetCurrentProcess(). MainWindowHandle

0

Если вы хотите иметь интерактивную форму в Excel, вам нужно будет сделать несколько выводков, как сказал Ганс в оригинальном ответе. см. Эту ссылку - on MSDN

Этот пример предназначен для управления refedit (который обычно доступен только от VBA). Пример должен предоставить вам необходимую информацию о IWin32Window и pinvoking для вызова метода Show объекта формы с этим значением параметра.