diff --git a/COP/COP.sln b/COP/COP.sln
index 45b649d..98c48c0 100644
--- a/COP/COP.sln
+++ b/COP/COP.sln
@@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinForms", "WinForms\WinForms.csproj", "{237F8689-B952-4E4B-AA51-71F3021838BF}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinForms", "WinForms\WinForms.csproj", "{237F8689-B952-4E4B-AA51-71F3021838BF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualComponentsLib", "VisualComponentsLib\VisualComponentsLib.csproj", "{DC3C02AA-D21D-445E-A942-EE82E7F10228}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{237F8689-B952-4E4B-AA51-71F3021838BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{237F8689-B952-4E4B-AA51-71F3021838BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{237F8689-B952-4E4B-AA51-71F3021838BF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DC3C02AA-D21D-445E-A942-EE82E7F10228}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DC3C02AA-D21D-445E-A942-EE82E7F10228}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DC3C02AA-D21D-445E-A942-EE82E7F10228}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DC3C02AA-D21D-445E-A942-EE82E7F10228}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/COP/VisualComponentsLib/Properties/AssemblyInfo.cs b/COP/VisualComponentsLib/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f262772
--- /dev/null
+++ b/COP/VisualComponentsLib/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("VisualComponentsLib")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("VisualComponentsLib")]
+[assembly: AssemblyCopyright("Copyright © 2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// компонента COM, задайте для атрибута ComVisible этого типа значение TRUE.
+[assembly: ComVisible(false)]
+
+// Следующий идентификатор GUID представляет идентификатор typelib, если этот проект доступен через COM
+[assembly: Guid("dc3c02aa-d21d-445e-a942-ee82e7f10228")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер сборки
+// Номер редакции
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/COP/VisualComponentsLib/UserControl1.Designer.cs b/COP/VisualComponentsLib/UserControl1.Designer.cs
new file mode 100644
index 0000000..ae6c37c
--- /dev/null
+++ b/COP/VisualComponentsLib/UserControl1.Designer.cs
@@ -0,0 +1,38 @@
+namespace VisualComponentsLib
+{
+ partial class UserControl1
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором компонентов
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ }
+
+ #endregion
+ }
+}
diff --git a/COP/VisualComponentsLib/UserControl1.cs b/COP/VisualComponentsLib/UserControl1.cs
new file mode 100644
index 0000000..831c08f
--- /dev/null
+++ b/COP/VisualComponentsLib/UserControl1.cs
@@ -0,0 +1,20 @@
+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 VisualComponentsLib
+{
+ public partial class UserControl1: UserControl
+ {
+ public UserControl1()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/COP/VisualComponentsLib/VisualComponentsLib.csproj b/COP/VisualComponentsLib/VisualComponentsLib.csproj
new file mode 100644
index 0000000..d62b8d7
--- /dev/null
+++ b/COP/VisualComponentsLib/VisualComponentsLib.csproj
@@ -0,0 +1,62 @@
+
+
+
+
+ Debug
+ AnyCPU
+ dc3c02aa-d21d-445e-a942-ee82e7f10228
+ Library
+ VisualComponentsLib
+ VisualComponentsLib
+ v4.7.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ UserControl1.cs
+
+
+
+
+
+
+