2011-01-08 17 views
0

在C#WinForms中,我想製作一個UserControl,它模仿ToolWindow的外觀 - 相當大,在右上角有一個標題和一個關閉按鈕的空間。這似乎可以通過重寫CreateParams(),使用WinUser.h中的相關常量,併爲相應的鼠標事件添加自定義處理程序,但對於簡單的事情來說,這看起來很麻煩。在我去之前,有沒有更簡單的方法?具有相當大的工具窗口的用戶控件

+1

嘿亞倫,也許我只是不理解你的問題。在這個UserControl中將會發生什麼? – 2011-01-08 20:09:12

+0

這是一個網格,但我的想法是定義一個派生自UserControl的類,在該類中可以實現此類邊框,然後在其中添加任何我喜歡的內容。 – 2011-01-08 20:53:30

回答

2

真的是最簡單的方法就是使用帶FormBorderStyle = SizeableToolWindow的窗體。這就是它的目的。使用Show(所有者)重載顯示它,以便它總是位於主窗口的頂部。如果您想挽救UserControl,那麼只需Dock =填寫表單。雖然暴露其屬性變得更難乾淨。

查看Weifenluo的DockPanel套件,用於類似Visual Studio的窗口模型。

0

ToolWindow是一個窗口,UserControl是一個位於窗口內部的控件(如文本框,按鈕等)。如果你想有一個可控的UserControl,並且有一個標題和一個關閉按鈕,我想你必須創建一個標題欄並關閉按鈕和尺寸夾點作爲控件本身的一部分。

您需要在「關閉」狀態下將控件從其父項上移除,並在調整大小時使用「調整大小」控件的父級控件。