目录

本教程使用到的相关软件或产品:

教程正文:

        创建用户控件库:

        添加自定义控件项:

        在其他解决方案中引用:


本教程使用到的相关软件或产品:

  1. Windows 10 专业版        10.0.19044
  2. Microsoft Visual Studio Community 2022 (64 位)  版本17.3.2
  3. 「.NET 桌面开发」工作负荷(在开始菜单中找到Visual Studio Installer打开可以看到已安装的工作负荷)

visual studio2022怎么添加python visual studio2022怎么添加控件_windows

  1. Microsoft .NET Framework 版本4.8.04084(在Visual Studio帮助菜单内可查看相应版本)  

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_02

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_03

教程正文:


        创建用户控件库:

创建新项目”

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_04

按下图过滤筛选后选择Windows 窗体控件库(.NET Framework),点击“下一步”

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_05

自行命名项目并指定位置,点击“创建”(请指定自己能记住的项目位置,后面还会用到)

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_06

创建完成后界面如下图

visual studio2022怎么添加python visual studio2022怎么添加控件_System_07

(如果界面右边没有解决方案资源管理器可在“视图”中打开)

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_08

        添加自定义控件项:

鼠标右击项目名称,选择“添加” ——> “新建项”

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_09

用户控件(Windows 窗体)”并自行拟定名称,随后点击“添加”

visual studio2022怎么添加python visual studio2022怎么添加控件_System_10

         使用 .NET Framework 可以创建复合控件、扩展控件或者自定义控件。有关如何确定创建何种类型的控件的信息可参考:各种自定义控件

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_11

Switch.cs与Switch.Designer.cs;其中Switch.cs是编写业务代码的地方,而Switch.Designer.cs是系统存放设计代码的地方,一般情况下不要轻易去改动里面的内容。

Switch.cs,选择“查看代码”可以打开其代码页面,而Switch.Designer.cs的代码页面直接左键双击即可打开。打开后如下图:

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_12

        上述内容完成后,最小化Visual Studio,打开文件资源管理器,找到项目所在文件夹,新建一个文件夹命名为“Resources”

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_13

打开Resources文件夹并放入下面两张图片(名称分别命名为"SwitchOFF"和"SwitchON"):

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_14

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_15

属性” ——> “资源”

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_16

单击“此项目不包含默认的资源文件,单击此处可进行创建”

visual studio2022怎么添加python visual studio2022怎么添加控件_解决方案_17

在“添加资源(R)”下拉菜单中选择“添加现有文件”

visual studio2022怎么添加python visual studio2022怎么添加控件_visual studio_18

选中Resources文件夹中的两张图片后点击“打开”

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_19

访问修饰符(I)”为“Internal”,随后 Ctrl + s 保存一下:

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_20

Switch.cs与Switch.Designer.cs,将如下代码替换进去(直接全文替换即可):

(这里的代码参考了如下文章

        😃请注意,代码中使用的命名空间需要与创建自定义控件库时项目的名称相同!

/// <summary>
/// Switch.cs
/// <summary>

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 WindowsFormsControlLibraryMadeByXJY    
{
    public partial class Switch : UserControl
    {
        public Switch()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.SetStyle(ControlStyles.Selectable, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            this.SetStyle(ControlStyles.UserPaint, true);
            this.BackColor = Color.Transparent;
            this.Cursor = Cursors.Hand;
            this.Size = new Size(87, 27);
        }
        bool isCheck = false;

        /// <summary>
        /// 是否选中
        /// </summary>
        public bool Checked
        {
            set { isCheck = value; this.Invalidate(); }
            get { return isCheck; }
        }



        protected override void OnPaint(PaintEventArgs e)
        {
            Bitmap bitMapOn = null;
            Bitmap bitMapOff = null;
            bitMapOn = Properties.Resources.SwitchON;
            bitMapOff = Properties.Resources.SwitchOFF;
            Graphics g = e.Graphics;
            Rectangle rec = new Rectangle(0, 0, this.Size.Width, this.Size.Height);

            if (isCheck)
            {
                g.DrawImage(bitMapOn, rec);
            }
            else
            {
                g.DrawImage(bitMapOff, rec);
            }
        }
        private void Switch_Click(object sender, EventArgs e)
        {
            isCheck = !isCheck;
            this.Invalidate();
        }
    }
}
/// <summary>
/// Switch.Designer.cs
/// <summary>

//!!*请确保这里使用的命名空间与创建自定义控件库时项目的命名相同*!!
namespace WindowsFormsControlLibraryMadeByXJY
{
    partial class Switch
    {
        /// <summary> 
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region 组件设计器生成的代码

        /// <summary> 
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.SuspendLayout();
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.Name = "mySwitch";
            this.Click += new System.EventHandler(this.Switch_Click);
            this.ResumeLayout(false);
        }

        #endregion
    }
}

保存后在菜单栏选择“生成” ——> “生成解决方案” / “重新生成解决方案”,如下图:

visual studio2022怎么添加python visual studio2022怎么添加控件_visual studio_21

生成成功后在输出窗口可看到结果,记住划红线的链接,后面会用到:

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_22

在其他解决方案中引用:

(为了方便演示,这里我新建一个解决方案,小伙伴们可以酌情跳过这一部分内容)

菜单栏选择“文件” ——> “新建” ——> “项目”

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_23

Windows 窗体应用(.NET Framework)”,随后点击“下一步”:

visual studio2022怎么添加python visual studio2022怎么添加控件_System_24

创建新解决方案”,随后点击“创建”:

visual studio2022怎么添加python visual studio2022怎么添加控件_visual studio_25

视图” ——> “工具箱”打开工具箱窗口,然后在工具箱空白处右键单击,点击“选择项”:

visual studio2022怎么添加python visual studio2022怎么添加控件_windows_26

第一次加载需要一点时间(如下图左半部分),加载完毕后如下图右半部分所示,点击“浏览”:

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_27

 找到刚才控件库生成的dll文件所在的位置,选中该dll文件,点击“打开”:

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_28

工具箱项”窗口中新增了一个Switch选项,如下图所示:

visual studio2022怎么添加python visual studio2022怎么添加控件_microsoft_29

最后点击“确定”,就可以在其他解决方案中的项目的工具箱窗口中看到自定义的控件了,包含系统自带的UserControl1以及自定义的Swtich控件。

visual studio2022怎么添加python visual studio2022怎么添加控件_visual studio_30