Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建非可视组件vs2012_C#_Visual Studio 2012 - Fatal编程技术网

C# 创建非可视组件vs2012

C# 创建非可视组件vs2012,c#,visual-studio-2012,C#,Visual Studio 2012,这个月我从Delphi切换到了VS2012和C#,但我遇到了一些问题 我开始创建一个类,该类通过串行端口与PLC通信,它工作正常,但我想将其转换为非可视组件,因此我可以将其拖放到表单中,而不必添加我使用的所有.cs文件 我已经创建了一些用户控件,但在本例中,我只需要一个非可视组件(因此我应该继承组件),例如计时器 我在谷歌上到处找了找,但我就是找不到任何与之相关的东西,也找不到任何解释我如何做的东西。任何人都可以为我指出正确的方向。为什么不将您的功能封装在一个类中,并向这个类添加代码引用 更新

这个月我从Delphi切换到了VS2012和C#,但我遇到了一些问题

我开始创建一个类,该类通过
串行端口与
PLC
通信,它工作正常,但我想将其转换为
非可视组件
,因此我可以将其拖放到表单中,而不必添加我使用的所有.cs文件

我已经创建了一些
用户控件
,但在本例中,我只需要一个非可视组件(因此我应该继承组件),例如计时器


我在谷歌上到处找了找,但我就是找不到任何与之相关的东西,也找不到任何解释我如何做的东西。任何人都可以为我指出正确的方向。

为什么不将您的功能封装在一个类中,并向这个类添加代码引用

更新

看起来你可以添加一个自定义dll到工具箱中,并像这样装饰它

免责声明,我没有测试这个

[ToolboxBitmap(@“D:\targetbitmap.bmp”)]


您需要将计时器拖放到窗体上。我不太明白。不,对不起,我想把我创建的类转换成一个非可视组件,显示在工具箱上,这样我就可以把它拖放到一个表单中并使用它。我对这个还是新手,但我想我就是这么做的,我创建了我的类“Serial”它处理了使用串口所需的所有内部内容,只公开了几个函数,比如connect()和read(),然后我在表单上添加了一个使用“serial”的函数。这就是你的意思吗?是的,不用创建可视化控件,只需使用你当时创建的类。从中实例化一个对象,并调用其函数。这仍然不会添加工具箱可视化元素,比如计时器,但它是非可视化的,并且可以做您想要的事情?是的,我这样做是可行的,但是这种方法对我来说似乎很混乱。而不是每次我必须使用该类时都必须将文件添加到我的项目中(请记住,这是一个专门的东西,只适用于一种类型的PLC,因此我已经创建了5个以上不同的类,并且在我完成从delphi到c的转换后,还会创建更多的类)我只是在表单中删除一个组件,然后立即开始编码。此外,由于我还是新手,这似乎是一个很好的机会来学习创建与UserControl相反的组件。也许你想从你的类中创建一个dll?这会在工具箱中添加一个组件吗?
public class CustomGridView : GridView
{