C# 自定义控件开发及使用(WPF)

C# 自定义控件开发及使用(WPF)

开发目的

在使用C# WinForm开发时,工具箱中已经提供了十分丰富的控件库,利用这些基础控件我们可以开展各类项目的开发。
但是我们在开发具有类似的项目时,我们希望将相同类型的功能模块封装成标准的控件,以便在此后的项目开发中直接调用,从而提高工作效率。


提示:以下是本篇文章正文内容,下面案例可供初学者参考,若有改进之处请提出意见并加以批评,谢谢。

开发流程

本篇文章是记录自己在开发Trio运动控制器API函数时,也希望能开发更多的功能块控件模板以供客户使用。
下文以封装上位机连接控制器的功能控件为例,来介绍C#自定义控件的封装方法。

创建控件库项目

1、首先新建 Windows窗体控件库项目
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、新建一个,在工具箱中添加自定义控件

在这里插入图片描述
2、点击浏览后,在自定义控件程序的Debug文件下选择编译形成的dll文件。
在这里插入图片描述
打开后可以看见自定义控件已被加载进来。

在这里插入图片描述
在这里插入图片描述
3、将自定义Connect_controller控件拖动至用户界面上
在这里插入图片描述
4、启动程序后可正常运行自定义Connect_controller控件
在这里插入图片描述
这样下次实现上位机与控制器之间的连接功能,只需将该控件拖动至用户界面上即可。

猜你喜欢

转载自blog.csdn.net/b29987064/article/details/113742557