2012-02-29 107 views
5

首先,感謝您的時間,並在審查這項援助...Excel加載項 - 保持Windows窗體總是可見的,而W/Excel中

我想一個Excel工作簿VBA升級到了!使用VS 2010在VB.NET中使用VSTO Excel加載項。在原始(ie-VBA)版本中,我有一個無模式UserForm(稱爲frmMain),它浮動在頂部,並且在用戶仍在Excel應用程序中時始終可見,但如果用戶移動到Excel之外的其他窗口,則不可見。

例如,在Excel中,用戶可以單擊任何工作表選項卡,選擇任何單元格等,並且UserForm仍然可見。這正是我想要的。

問題是,在新的VSTO加載項中,我無法讓Windows窗體模仿這種相同的行爲。

我用frmMain.Show()展現形式爲無模式形式,但當下用戶點擊一個Excel工作表(i.e.-激活工作表)形式變爲工作表隱藏背後。

我可以手動Alt-Tab將窗體重新放入視圖中,但我需要它始終保持在視圖中 - 只要用戶還沒有離開Excel應用程序,就可以浮動在Excel工作表之上。

我嘗試了各種各樣的東西,包括將表格設置爲TopMost,但是,導致表格在任何地方都是TopMost - 包括Excel以外。更糟的是,如果用戶做了任何事情,通常會導致Excel啓動一個對話框(例如 - 關閉一個打開的工作簿,提高警報「你想保存更改...」)警報對話框本身隱藏在frmMain表格後面(,因爲frmMainTopMost)。

如何讓我的表單以所需的方式運行(即 - 與VBA中的方式相同)?

謝謝!

羅布

回答