开发目的
在使用C# WinForm开发时,工具箱中已经提供了十分丰富的控件库,利用这些基础控件我们可以开展各类项目的开发。
但是我们在开发具有类似的项目时,我们希望将相同类型的功能模块封装成标准的控件,以便在此后的项目开发中直接调用,从而提高工作效率。
提示:以下是本篇文章正文内容,下面案例可供初学者参考,若有改进之处请提出意见并加以批评,谢谢。
开发流程
本篇文章是记录自己在开发Trio运动控制器API函数时,也希望能开发更多的功能块控件模板以供客户使用。
下文以封装上位机连接控制器的功能控件为例,来介绍C#自定义控件的封装方法。
创建控件库项目
1、首先新建 Windows窗体控件库项目
2、在用户界面上添加工具箱中的控件,如下图所示
3、编写控件相应程序
- 3.1 双击 连接控制器 的控件,写入如下程序代码
private void CntBtn_Click(object sender, EventArgs e)
{
ipAddress = IpTBox.Text.Trim();
trio.SetHost(ipAddress);
trio.Open(PortType.Ethernet, PortId.EthernetREMOTE);
isSuccess = trio.IsOpen(PortId.Default);
if (trio.IsOpen(PortId.EthernetREMOTE))
{
double value;
trio.GetAxisVariable("AXISSTATUS", numAxis, out value);
if (value != 0)
{
trio.Execute("ETHERCAT(0,0)");
}
MessageBox.Show("成功连接控制器!");
}
else
{
MessageBox.Show("无法连接控制器!");
}
}
- 3.2 双击 断开控制器 的控件,写入如下程序代码
private void DisCntBtn_Click(object sender, EventArgs e)
{
trio.Close(PortId.Default);
isSuccess = trio.IsOpen(PortId.Default);
if (isSuccess)
{
MessageBox.Show("断开控制器失败!");
}
else
{
MessageBox.Show("控制器已断开连接!");
}
}
- 3.3上述程序中使用了关于Trio运控的API函数,所以在使用过程中需要在该项目中添加对Trio运控函数的引用。
提示:如果在封装自定义控件时不需要使用其他引用,则忽略此步骤。
4、修改封装控件名、启动程序、生成解决方案
自定义控件的使用
1、新建一个,在工具箱中添加自定义控件
扫描二维码关注公众号,回复:
12448641 查看本文章

2、点击浏览后,在自定义控件程序的Debug文件下选择编译形成的dll文件。
打开后可以看见自定义控件已被加载进来。
3、将自定义Connect_controller控件拖动至用户界面上
4、启动程序后可正常运行自定义Connect_controller控件
这样下次实现上位机与控制器之间的连接功能,只需将该控件拖动至用户界面上即可。