嗨我需要通過在Excel主窗口上浮動無模式窗體來模擬任務窗格。這個要求的原因是我需要爲我的Excel加載項提供任務窗格功能,但不能使用以文檔爲中心的模型。需要在excel主窗口(準任務窗格)上放置一個浮動非模態窗體
任何人都可以建議什麼是最好的方式來做到這一點?無模式窗體需要檢測主窗口大小調整事件並相應調整其自身,並且還需要始終將自己置於窗口底部(類似於對接窗格)。
嗨我需要通過在Excel主窗口上浮動無模式窗體來模擬任務窗格。這個要求的原因是我需要爲我的Excel加載項提供任務窗格功能,但不能使用以文檔爲中心的模型。需要在excel主窗口(準任務窗格)上放置一個浮動非模態窗體
任何人都可以建議什麼是最好的方式來做到這一點?無模式窗體需要檢測主窗口大小調整事件並相應調整其自身,並且還需要始終將自己置於窗口底部(類似於對接窗格)。
我將分享迄今爲止發現的內容。代碼項目中的一篇文章內容非常豐富,我認爲這將幫助我找出長期需要做的事情,儘管這是關於Outlook面板集成的。我沒有時間真正嘗試將下面概述的解決方案整合到我的Excel項目中,但文章中概述的想法似乎很紮實。
http://www.codeproject.com/KB/office/additional_panel_Outlook.aspx
一旦我得到更多的信息,我會更新我的職務。
也許我沒有理解這個問題,但是如果你只是簡單地將窗體的ShowModal屬性設置爲False,那麼你會得到你想要的。
我更this method which is simple and straight forward:
這裏是我是如何實現它(在VB):
Public Class WindowWrapper
Implements System.Windows.Forms.IWin32Window
Private _hwnd As IntPtr
Public Sub New(ByVal handle As IntPtr)
_hwnd = handle
End Sub
Public ReadOnly Property Handle() As IntPtr Implements System.Windows.Forms.IWin32Window.Handle
Get
Return _hwnd
End Get
End Property
End Class
Dim owner As New WindowWrapper(CType(gXLApp.Hwnd, IntPtr))
gfTimeStamp = New FTimeStamp
gfTimeStamp.Show(owner)
工作太棒了!