2010-03-31 39 views
6

嗨我需要通過在Excel主窗口上浮動無模式窗體來模擬任務窗格。這個要求的原因是我需要爲我的Excel加載項提供任務窗格功能,但不能使用以文檔爲中心的模型。需要在excel主窗口(準任務窗格)上放置一個浮動非模態窗體

任何人都可以建議什麼是最好的方式來做到這一點?無模式窗體需要檢測主窗口大小調整事件並相應調整其自身,並且還需要始終將自己置於窗口底部(類似於對接窗格)。

回答

0

我將分享迄今爲止發現的內容。代碼項目中的一篇文章內容非常豐富,我認爲這將幫助我找出長期需要做的事情,儘管這是關於Outlook面板集成的。我沒有時間真正嘗試將下面概述的解決方案整合到我的Excel項目中,但文章中概述的想法似乎很紮實。

http://www.codeproject.com/KB/office/additional_panel_Outlook.aspx

一旦我得到更多的信息,我會更新我的職務。

1

也許我沒有理解這個問題,但是如果你只是簡單地將窗體的ShowModal屬性設置爲False,那麼你會得到你想要的。

1

我更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) 

工作太棒了!