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

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

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

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

创建自定义控件

第一步:创建控件库项目: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个自定义的控件到测试窗口
在这里插入图片描述
第四步:测试自定义控件
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值