C#(Winfrom)自定义控件--组合控件方式

 更新时间:2025年07月31日 09:51:02   作者:码上写码  
文章介绍了创建和使用自定义控件的步骤:首先构建控件库项目,添加TextBox和Button控件并设置透明背景,编写属性及事件处理代码;然后通过测试程序验证功能,最后将控件部署到测试窗体中使用

本例是制作一个简单的自定义控件,然后用一个简单的测试程序,

对于初学者来说,本例子比较简单,只能起到抛石引玉的效果。

我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享。

创建自定义控件

第一步:创建控件库项目:MyControl

第二步:从工具箱中拖出1个TextBox和Button控件

设置背景为透明

在项目中添加一个Windows窗体程序

第三步:添加处理程序代码

PopControls中定义自定义控件的属性及button事件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyControls
{
    public partial class PopControls : UserControl
    {
        
        public static string s;
        public PopControls()
        {
            InitializeComponent();
        }
        //定义自定义的属性
        [Browsable(true)]
        [Description("点击按钮,窗体的宽度,单位时像素"),Category("自定义属性"),DefaultValue(0)]
        public int PopWidth { get; set; }
        [Browsable(true)]
        [Description("点击按钮,窗体的高,单位时像素"), Category("自定义属性"), DefaultValue(0)]
        public int PopHeight { get; set; }
        [Browsable(true)]
        [Description("窗体的Text属性"), Category("自定义属性"), DefaultValue(0)]
        public string PopText { get; set; }
        private void btnok_Click(object sender, EventArgs e)
        {
            FrmPop frm = new FrmPop(PopWidth,PopHeight,PopText);
            frm.ShowDialog();

            txtnode.Text = s;
        }
    }
}

FrmPop窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyControls
{
    public partial class FrmPop : Form
    {
        public FrmPop(int PopWidth,int PopHeight,string PopText)
        {
            InitializeComponent();
            this.ClientSize = new System.Drawing.Size(PopWidth, PopHeight);
            this.Text = PopText;
        }

        private void FrmPop_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 50; i++)
            {
                //随机数
                string s = Guid.NewGuid().ToString("N");
                listBoxGuid.Items.Add(s);
            }
            
        }

        private void listBoxGuid_DoubleClick(object sender, EventArgs e)
        {
            PopControls.s = listBoxGuid.SelectedItem.ToString();

            this.Close();
        }
    }
}

第四步:测试控件

双击listbox中的数据

第五步:查看成生的控件文件,到该项目文件目录下的bin->debug中可找到。

使用自定义控件

第一步:创建Windows窗体程序

第二步:添加自定义控件

右键选中添加选项卡

在自定义控件下右键点击选择项,弹框如下图:

点击浏览,找到自定义控件项目–bin–debug–Mycontrols.dll文件

选中控件文件 Mycontrols.dll ,单击“打开”按钮,回到自定义工具箱,系统会默认把你刚才选中的控件打上 勾

返回vs编辑器,可看到工具箱中发现PopControls控件:

第三步:拖动1个自定义的控件到测试窗口

第四步:测试自定义控件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • c# 实现模糊PID控制算法

    c# 实现模糊PID控制算法

    这篇文章主要介绍了c# 实现模糊PID控制算法的示例代码,帮助大家更好的理解和使用c#编程语言,感兴趣的朋友可以了解下
    2020-12-12
  • C#中预处理指令的实现

    C#中预处理指令的实现

    预处理指令是C#编译前用于条件编译、调试和代码组织的指令,本文主要介绍了C#中预处理指令的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-05-05
  • WPF自定义控件实现ItemsControl鱼眼效果

    WPF自定义控件实现ItemsControl鱼眼效果

    这篇文章主要为大家详细介绍了WPF如何通过自定义控件实现ItemsControl鱼眼效果,文中的示例代码讲解详细,需要的可以参考一下
    2024-01-01
  • 使用C#开发OPC Server服务器源码解析

    使用C#开发OPC Server服务器源码解析

    OPC Server服务器服务器的开发比较繁琐,本示例采用C#提供了一种简单快速实现OPCServer的方法,已经在工程项目中应用,本文对C#开发OPC Server服务器相关知识给大家介绍的非常详细,需要的朋友参考下吧
    2022-06-06
  • WPF使用WinSCP实现FTP下载

    WPF使用WinSCP实现FTP下载

    这篇文章主要为大家详细介绍了WPF如何使用WinSCP实现FTP下载,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-01-01
  • C#实现treeview绑定的方法

    C#实现treeview绑定的方法

    这篇文章主要介绍了C#实现treeview绑定的方法,包括datatable的获取与节点的操作,具有一定的参考价值,需要的朋友可以参考下
    2014-12-12
  • 在C#中将Word转换为PostScript的代码实现

    在C#中将Word转换为PostScript的代码实现

    在需要高质量打印或跨平台文档分发的场景中,将Word转换为PostScript是专业选择,所以本文给大家介绍了如何在 C# 中将 Word 转换为 PostScript,需要的朋友可以参考下
    2025-09-09
  • C#的TimeSpan案例详解

    C#的TimeSpan案例详解

    这篇文章主要介绍了C#的TimeSpan案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C#字符串String及字符Char的相关方法

    C#字符串String及字符Char的相关方法

    这篇文章介绍了C#字符串String及字符Char的相关方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#如何动态创建Label,及动态label事件

    C#如何动态创建Label,及动态label事件

    这篇文章主要介绍了C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论