2017-08-01 52 views
2

我知道,一旦你建立一個UserControl,它會自動出現在Visual Studio的工具箱上,因此你可以隨時拖放它。但是,如何在非可視類上做這件事(如BackgroundWorker或Timer)呢?如何使我創建的類或DLL出現在VS工具箱

我創建了一個具有屬性並引發事件的類(稱爲StationMonitor)。我正在與我的同事分享它,我們希望通過消除對象的程序化實例化來消磨時間。基本上,我們希望這個StationMonitor可以像BackgroundWoker和Timer一樣從工具箱中拖放。

我猜有類似下面這樣做(或糾正我,如果我錯了)

[Something From Visual Studio="Something" version yada yada] 
    public class StationMonitor { 
     // everything here 
    } 
+0

當我繼承它也出現在工具箱中一個定時器。 – TaW

回答

1

要在工具箱,你需要從Component

獲得它的非可視類
using System.ComponentModel; 
... 

class StationMonitor : Component 
{ 
    ... 
    ... 
} 

enter image description here

或者,如果因爲你已經繼承另外一個你不能從一個類派生,實現IComponent interface,這當然是多了幾分乏味..

Interesting reads here.

+0

謝謝Taw!我將不得不將這標記爲答案。拯救生命。但是,我想說,這阻止了我的類被序列化。我不能再將StationMonitor的對象實例保存到我的硬盤。 :'( – morethanyell

+0

嗯,有趣,我確定它可以解決,但不能說明,這可能需要一個單獨的問題,imo。首先看看[這個有趣的答案,但!](https: //stackoverflow.com/questions/18588083/xmlserializer-ignoring-inherited-unserializable-member) – TaW

相關問題