2017-08-01 23 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

相关问题