This commit is contained in:
Володя 2023-09-15 14:21:51 +03:00
parent c92653c50d
commit 9464a7b934
28 changed files with 2037 additions and 0 deletions

31
VisEl/KOP.sln Normal file
View File

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32825.248
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisEl", "VisEl\VisEl.csproj", "{471DE73A-592F-45F0-8249-9F6DD539682C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{D173D582-D0AE-45DF-88FC-0DE0A8183E82}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{471DE73A-592F-45F0-8249-9F6DD539682C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{471DE73A-592F-45F0-8249-9F6DD539682C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{471DE73A-592F-45F0-8249-9F6DD539682C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{471DE73A-592F-45F0-8249-9F6DD539682C}.Release|Any CPU.Build.0 = Release|Any CPU
{D173D582-D0AE-45DF-88FC-0DE0A8183E82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D173D582-D0AE-45DF-88FC-0DE0A8183E82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D173D582-D0AE-45DF-88FC-0DE0A8183E82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D173D582-D0AE-45DF-88FC-0DE0A8183E82}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B0A5CC80-0B00-4A75-A160-2E4A07130019}
EndGlobalSection
EndGlobal

6
VisEl/Test/App.config Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

365
VisEl/Test/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,365 @@
namespace Test
{
partial class Form1
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором форм Windows
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.textBoxList = new System.Windows.Forms.TextBox();
this.labelList = new System.Windows.Forms.Label();
this.labelListEl = new System.Windows.Forms.Label();
this.elemetsOfList = new System.Windows.Forms.Label();
this.buttonAdd = new System.Windows.Forms.Button();
this.LoadInBox = new System.Windows.Forms.Button();
this.buttonClear = new System.Windows.Forms.Button();
this.textBoxTakeValue = new System.Windows.Forms.TextBox();
this.buttonTake = new System.Windows.Forms.Button();
this.buttonReplace = new System.Windows.Forms.Button();
this.dateTimePicker = new System.Windows.Forms.DateTimePicker();
this.buttonTakeTime = new System.Windows.Forms.Button();
this.buttonGiveTime = new System.Windows.Forms.Button();
this.labelTitle = new System.Windows.Forms.Label();
this.labelChecked = new System.Windows.Forms.Label();
this.buttonStart = new System.Windows.Forms.Button();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.myTreeView1 = new VisEl.MyTreeView();
this.myTextBoxDate = new VisEl.MyTextBoxDate();
this.newCheckList1 = new VisEl.MyCheckList();
this.buttonAddHier = new System.Windows.Forms.Button();
this.labelHier = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.buttonGen = new System.Windows.Forms.Button();
this.buttonTakeNode = new System.Windows.Forms.Button();
this.labelNode = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textBoxList
//
this.textBoxList.Location = new System.Drawing.Point(492, 12);
this.textBoxList.Name = "textBoxList";
this.textBoxList.Size = new System.Drawing.Size(261, 22);
this.textBoxList.TabIndex = 1;
//
// labelList
//
this.labelList.AutoSize = true;
this.labelList.Location = new System.Drawing.Point(336, 12);
this.labelList.Name = "labelList";
this.labelList.Size = new System.Drawing.Size(120, 16);
this.labelList.TabIndex = 2;
this.labelList.Text = "Создание списка";
//
// labelListEl
//
this.labelListEl.AutoSize = true;
this.labelListEl.Location = new System.Drawing.Point(336, 94);
this.labelListEl.Name = "labelListEl";
this.labelListEl.Size = new System.Drawing.Size(83, 16);
this.labelListEl.TabIndex = 3;
this.labelListEl.Text = "ListElements";
//
// elemetsOfList
//
this.elemetsOfList.AutoSize = true;
this.elemetsOfList.Location = new System.Drawing.Point(425, 94);
this.elemetsOfList.Name = "elemetsOfList";
this.elemetsOfList.Size = new System.Drawing.Size(0, 16);
this.elemetsOfList.TabIndex = 4;
//
// buttonAdd
//
this.buttonAdd.Location = new System.Drawing.Point(492, 55);
this.buttonAdd.Name = "buttonAdd";
this.buttonAdd.Size = new System.Drawing.Size(145, 23);
this.buttonAdd.TabIndex = 5;
this.buttonAdd.Text = "Добавить в список";
this.buttonAdd.UseVisualStyleBackColor = true;
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
//
// LoadInBox
//
this.LoadInBox.Location = new System.Drawing.Point(666, 55);
this.LoadInBox.Name = "LoadInBox";
this.LoadInBox.Size = new System.Drawing.Size(87, 23);
this.LoadInBox.TabIndex = 6;
this.LoadInBox.Text = "Загрузить";
this.LoadInBox.UseVisualStyleBackColor = true;
this.LoadInBox.Click += new System.EventHandler(this.LoadInBox_Click);
//
// buttonClear
//
this.buttonClear.Location = new System.Drawing.Point(339, 55);
this.buttonClear.Name = "buttonClear";
this.buttonClear.Size = new System.Drawing.Size(120, 23);
this.buttonClear.TabIndex = 7;
this.buttonClear.Text = "Очистить";
this.buttonClear.UseVisualStyleBackColor = true;
this.buttonClear.Click += new System.EventHandler(this.buttonClear_Click);
//
// textBoxTakeValue
//
this.textBoxTakeValue.Location = new System.Drawing.Point(339, 147);
this.textBoxTakeValue.Name = "textBoxTakeValue";
this.textBoxTakeValue.Size = new System.Drawing.Size(321, 22);
this.textBoxTakeValue.TabIndex = 8;
//
// buttonTake
//
this.buttonTake.Location = new System.Drawing.Point(339, 193);
this.buttonTake.Name = "buttonTake";
this.buttonTake.Size = new System.Drawing.Size(75, 23);
this.buttonTake.TabIndex = 9;
this.buttonTake.Text = "Взять";
this.buttonTake.UseVisualStyleBackColor = true;
this.buttonTake.Click += new System.EventHandler(this.buttonTake_Click);
//
// buttonReplace
//
this.buttonReplace.Location = new System.Drawing.Point(461, 192);
this.buttonReplace.Name = "buttonReplace";
this.buttonReplace.Size = new System.Drawing.Size(92, 23);
this.buttonReplace.TabIndex = 10;
this.buttonReplace.Text = "Пяоменять";
this.buttonReplace.UseVisualStyleBackColor = true;
this.buttonReplace.Click += new System.EventHandler(this.buttonReplace_Click);
//
// dateTimePicker
//
this.dateTimePicker.Location = new System.Drawing.Point(428, 321);
this.dateTimePicker.Name = "dateTimePicker";
this.dateTimePicker.Size = new System.Drawing.Size(200, 22);
this.dateTimePicker.TabIndex = 12;
//
// buttonTakeTime
//
this.buttonTakeTime.Location = new System.Drawing.Point(701, 286);
this.buttonTakeTime.Name = "buttonTakeTime";
this.buttonTakeTime.Size = new System.Drawing.Size(75, 23);
this.buttonTakeTime.TabIndex = 13;
this.buttonTakeTime.Text = "Взять";
this.buttonTakeTime.UseVisualStyleBackColor = true;
this.buttonTakeTime.Click += new System.EventHandler(this.buttonTakeTime_Click);
//
// buttonGiveTime
//
this.buttonGiveTime.Location = new System.Drawing.Point(428, 358);
this.buttonGiveTime.Name = "buttonGiveTime";
this.buttonGiveTime.Size = new System.Drawing.Size(75, 23);
this.buttonGiveTime.TabIndex = 14;
this.buttonGiveTime.Text = "Загрузить";
this.buttonGiveTime.UseVisualStyleBackColor = true;
this.buttonGiveTime.Click += new System.EventHandler(this.buttonGiveTime_Click);
//
// labelTitle
//
this.labelTitle.AutoSize = true;
this.labelTitle.Location = new System.Drawing.Point(428, 286);
this.labelTitle.Name = "labelTitle";
this.labelTitle.Size = new System.Drawing.Size(88, 16);
this.labelTitle.TabIndex = 15;
this.labelTitle.Text = "Вы выбрали:";
//
// labelChecked
//
this.labelChecked.AutoSize = true;
this.labelChecked.Location = new System.Drawing.Point(508, 285);
this.labelChecked.Name = "labelChecked";
this.labelChecked.Size = new System.Drawing.Size(0, 16);
this.labelChecked.TabIndex = 16;
//
// buttonStart
//
this.buttonStart.Location = new System.Drawing.Point(684, 743);
this.buttonStart.Name = "buttonStart";
this.buttonStart.Size = new System.Drawing.Size(75, 23);
this.buttonStart.TabIndex = 18;
this.buttonStart.Text = "Поехали";
this.buttonStart.UseVisualStyleBackColor = true;
this.buttonStart.Click += new System.EventHandler(this.buttonGO_Click);
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(525, 412);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 24);
this.comboBox1.TabIndex = 19;
//
// myTreeView1
//
this.myTreeView1.AutoSize = true;
this.myTreeView1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.myTreeView1.BackColor = System.Drawing.SystemColors.ControlDark;
this.myTreeView1.Location = new System.Drawing.Point(12, 412);
this.myTreeView1.Name = "myTreeView1";
this.myTreeView1.Size = new System.Drawing.Size(427, 403);
this.myTreeView1.TabIndex = 17;
//
// myTextBoxDate
//
this.myTextBoxDate.DateMaximum = new System.DateTime(2025, 12, 31, 0, 0, 0, 0);
this.myTextBoxDate.DateMinimum = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
this.myTextBoxDate.Location = new System.Drawing.Point(31, 286);
this.myTextBoxDate.Name = "myTextBoxDate";
this.myTextBoxDate.Size = new System.Drawing.Size(316, 150);
this.myTextBoxDate.TabIndex = 11;
this.myTextBoxDate.Value = "13.09.2023";
//
// newCheckList1
//
this.newCheckList1.AutoSize = true;
this.newCheckList1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.newCheckList1.BackColor = System.Drawing.SystemColors.ActiveBorder;
this.newCheckList1.Location = new System.Drawing.Point(31, 12);
this.newCheckList1.Name = "newCheckList1";
this.newCheckList1.selectedValue = "";
this.newCheckList1.Size = new System.Drawing.Size(285, 248);
this.newCheckList1.TabIndex = 0;
//
// buttonAddHier
//
this.buttonAddHier.Location = new System.Drawing.Point(678, 412);
this.buttonAddHier.Name = "buttonAddHier";
this.buttonAddHier.Size = new System.Drawing.Size(75, 23);
this.buttonAddHier.TabIndex = 20;
this.buttonAddHier.Text = "Добавить";
this.buttonAddHier.UseVisualStyleBackColor = true;
this.buttonAddHier.Click += new System.EventHandler(this.buttonAddHier_Click);
//
// labelHier
//
this.labelHier.AutoSize = true;
this.labelHier.Location = new System.Drawing.Point(446, 460);
this.labelHier.Name = "labelHier";
this.labelHier.Size = new System.Drawing.Size(0, 16);
this.labelHier.TabIndex = 21;
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.ItemHeight = 16;
this.listBox1.Location = new System.Drawing.Point(517, 477);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(242, 260);
this.listBox1.TabIndex = 22;
//
// buttonGen
//
this.buttonGen.Location = new System.Drawing.Point(678, 448);
this.buttonGen.Name = "buttonGen";
this.buttonGen.Size = new System.Drawing.Size(75, 23);
this.buttonGen.TabIndex = 23;
this.buttonGen.Text = "Генерир";
this.buttonGen.UseVisualStyleBackColor = true;
this.buttonGen.Click += new System.EventHandler(this.buttonGen_Click);
//
// buttonTakeNode
//
this.buttonTakeNode.Location = new System.Drawing.Point(511, 743);
this.buttonTakeNode.Name = "buttonTakeNode";
this.buttonTakeNode.Size = new System.Drawing.Size(75, 23);
this.buttonTakeNode.TabIndex = 24;
this.buttonTakeNode.Text = "Достать";
this.buttonTakeNode.UseVisualStyleBackColor = true;
this.buttonTakeNode.Click += new System.EventHandler(this.buttonTakeNode_Click);
//
// labelNode
//
this.labelNode.AutoSize = true;
this.labelNode.Location = new System.Drawing.Point(514, 778);
this.labelNode.Name = "labelNode";
this.labelNode.Size = new System.Drawing.Size(0, 16);
this.labelNode.TabIndex = 25;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 867);
this.Controls.Add(this.labelNode);
this.Controls.Add(this.buttonTakeNode);
this.Controls.Add(this.buttonGen);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.labelHier);
this.Controls.Add(this.buttonAddHier);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.buttonStart);
this.Controls.Add(this.myTreeView1);
this.Controls.Add(this.labelChecked);
this.Controls.Add(this.labelTitle);
this.Controls.Add(this.buttonGiveTime);
this.Controls.Add(this.buttonTakeTime);
this.Controls.Add(this.dateTimePicker);
this.Controls.Add(this.myTextBoxDate);
this.Controls.Add(this.buttonReplace);
this.Controls.Add(this.buttonTake);
this.Controls.Add(this.textBoxTakeValue);
this.Controls.Add(this.buttonClear);
this.Controls.Add(this.LoadInBox);
this.Controls.Add(this.buttonAdd);
this.Controls.Add(this.elemetsOfList);
this.Controls.Add(this.labelListEl);
this.Controls.Add(this.labelList);
this.Controls.Add(this.textBoxList);
this.Controls.Add(this.newCheckList1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private VisEl.MyCheckList newCheckList1;
private System.Windows.Forms.TextBox textBoxList;
private System.Windows.Forms.Label labelList;
private System.Windows.Forms.Label labelListEl;
private System.Windows.Forms.Label elemetsOfList;
private System.Windows.Forms.Button buttonAdd;
private System.Windows.Forms.Button LoadInBox;
private System.Windows.Forms.Button buttonClear;
private System.Windows.Forms.TextBox textBoxTakeValue;
private System.Windows.Forms.Button buttonTake;
private System.Windows.Forms.Button buttonReplace;
private VisEl.MyTextBoxDate myTextBoxDate;
private System.Windows.Forms.DateTimePicker dateTimePicker;
private System.Windows.Forms.Button buttonTakeTime;
private System.Windows.Forms.Button buttonGiveTime;
private System.Windows.Forms.Label labelTitle;
private System.Windows.Forms.Label labelChecked;
private VisEl.MyTreeView myTreeView1;
private System.Windows.Forms.Button buttonStart;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Button buttonAddHier;
private System.Windows.Forms.Label labelHier;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button buttonGen;
private System.Windows.Forms.Button buttonTakeNode;
private System.Windows.Forms.Label labelNode;
}
}

112
VisEl/Test/Form1.cs Normal file
View File

@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Management.Instrumentation;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TestLib;
using VisEl;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace Test
{
public partial class Form1 : Form
{
List<string> ordersToAdd = new List<string>();
List<string> stringToHierachy = new List<string>();
List<Sportsmen> sportsmens = new List<Sportsmen>();
string[] names = {"Vova M","Sasha A","Dima D", "Danila L" };
string[] sports = { "Run", "Swim", "Cycle", "Race", "Box" };
string[] cities = { "Moskow", "Samara", "Piter", "Kazan", "Kyrsk" };
string[] countries = { "Russia", "Spain", "China", "India", "Brazil" };
string[] rewards = { "#1", "#2", "KMS", "Olymp", "MS" };
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(typeof(Sportsmen).GetFields().Select(x => x.Name).ToArray());
comboBox1.Items.AddRange(typeof(Sportsmen).GetProperties().Select(x => x.Name).ToArray());
}
private void buttonAdd_Click(object sender, EventArgs e)
{
if (textBoxList.Text is null || textBoxList.Text.Length == 0) return;
ordersToAdd.Add(textBoxList.Text);
elemetsOfList.Text += textBoxList.Text + ", ";
textBoxList.Text = "";
}
private void LoadInBox_Click(object sender, EventArgs e)
{
newCheckList1.LoadValues(ordersToAdd);
ordersToAdd.Clear();
elemetsOfList.Text = "";
}
private void buttonClear_Click(object sender, EventArgs e)
{
newCheckList1.RemoveAll();
}
private void buttonTake_Click(object sender, EventArgs e)
{
textBoxTakeValue.Text = newCheckList1.selectedValue;
}
private void buttonReplace_Click(object sender, EventArgs e)
{
newCheckList1.selectedValue = textBoxTakeValue.Text;
}
private void buttonTakeTime_Click(object sender, EventArgs e)
{
labelChecked.Text = myTextBoxDate.Value;
}
private void buttonGiveTime_Click(object sender, EventArgs e)
{
myTextBoxDate.Value = dateTimePicker.Value.ToString();
}
private void buttonGO_Click(object sender, EventArgs e)
{
foreach(string step in stringToHierachy)
myTreeView1.addToHierarchy(step, false);
myTreeView1.LoadTree(sportsmens);
labelHier.Text = "";
stringToHierachy.Clear();
sportsmens.Clear();
}
private void buttonAddHier_Click(object sender, EventArgs e)
{
if(stringToHierachy.Contains(comboBox1.SelectedItem))
return;
stringToHierachy.Add(comboBox1.SelectedItem.ToString());
labelHier.Text += " " + comboBox1.SelectedItem.ToString();
}
private void buttonGen_Click(object sender, EventArgs e)
{
sportsmens.Clear();
listBox1.Items.Clear();
Random rn = new Random();
for(int i = 0; i < 10; i++)
{
Sportsmen sm = new Sportsmen(names[rn.Next(0, 4)], sports[rn.Next(0, 5)], cities[rn.Next(0, 5)], countries[rn.Next(0, 5)], rewards[rn.Next(0, 5)]);
sportsmens.Add(sm);
listBox1.Items.Add($"{sm.name} {sm.sport} {sm.country} {sm.city} {sm.awards}");
}
}
private void buttonTakeNode_Click(object sender, EventArgs e)
{
labelNode.Text = myTreeView1.GetNode();
}
}
}

120
VisEl/Test/Form1.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

21
VisEl/Test/Program.cs Normal file
View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test
{
internal static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// связанных со сборкой.
[assembly: AssemblyTitle("Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Test")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("d173d582-d0ae-45df-88fc-0de0a8183e82")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программным средством.
// Версия среды выполнения: 4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
// код создан повторно.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test.Properties
{
/// <summary>
/// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
/// </summary>
// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
// класс с помощью таких средств, как ResGen или Visual Studio.
// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
// с параметром /str или заново постройте свой VS-проект.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Переопределяет свойство CurrentUICulture текущего потока для всех
/// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

93
VisEl/Test/Test.csproj Normal file
View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D173D582-D0AE-45DF-88FC-0DE0A8183E82}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Test</RootNamespace>
<AssemblyName>Test</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestClasses\Sportsmen.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\VisEl\VisEl.csproj">
<Project>{471DE73A-592F-45F0-8249-9F6DD539682C}</Project>
<Name>VisEl</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestLib
{
public class Sportsmen
{
public string name;
public string sport;
public string city;
public string country;
public string Region { get { return city; } set { city = value; } }
public string awards;
public Sportsmen(string name, string sport, string city, string country, string awards)
{
this.name = name;
this.sport = sport;
this.city = city;
this.country = country;
this.awards = awards;
}
}
}

23
VisEl/TestLib/Car.cs Normal file
View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace TestLib
{
public class Car
{
string model;
string Model { get { return model; } set { model = value; } }
string year;
string color;
public Car(string model, string year, string color)
{
this.model = model;
this.year = year;
this.color = color;
}
}
}

21
VisEl/TestLib/Employer.cs Normal file
View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestLib
{
public class Employer
{
string name;
string proffesion;
string office;
public Employer(string name, string proffesion, string office)
{
this.name = name;
this.proffesion = proffesion;
this.office = office;
}
}
}

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestLib
{
public class Sportsmen
{
string name;
string sport;
string city;
string country;
string Region { get { return city; } set { city = value; } }
int awards;
public Sportsmen(string name, string sport, string city, string country, int awards)
{
this.name = name;
this.sport = sport;
this.city = city;
this.country = country;
this.awards = awards;
}
}
}

View File

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

65
VisEl/VisEl/MyCheckList.Designer.cs generated Normal file
View File

@ -0,0 +1,65 @@
using System.Drawing;
namespace VisEl
{
partial class MyCheckList
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.checkedList = new System.Windows.Forms.CheckedListBox();
this.SuspendLayout();
//
// checkedList
//
this.checkedList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(200)))), ((int)(((byte)(246)))));
this.checkedList.FormattingEnabled = true;
this.checkedList.HorizontalScrollbar = true;
this.checkedList.Location = new System.Drawing.Point(3, 3);
this.checkedList.Name = "checkedList";
this.checkedList.Size = new System.Drawing.Size(279, 242);
this.checkedList.TabIndex = 0;
this.checkedList.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.checkedList_ItemCheck);
//
// MyCheckList
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.BackColor = Color.FromArgb(0,0,0);
this.Controls.Add(this.checkedList);
this.Name = "MyCheckList";
this.Size = new System.Drawing.Size(285, 248);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.CheckedListBox checkedList;
}
}

View File

@ -0,0 +1,48 @@
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 VisEl
{
public partial class MyCheckList : UserControl
{
public MyCheckList()
{
InitializeComponent();
}
public void LoadValues(List<string> Values)
{
checkedList.Items.AddRange(Values.ToArray());
}
public void RemoveAll()
{
checkedList.Items.Clear();
}
public string selectedValue {
get
{
if(checkedList.SelectedItem is null)
return "";
else
return checkedList.SelectedItem.ToString();
}
set {
if (checkedList.SelectedItem is null)
return;
checkedList.Items[checkedList.SelectedIndex] = value;
}
}
private void checkedList_ItemCheck(object sender, ItemCheckEventArgs e)
{
Random rn = new Random();
checkedList.BackColor = Color.FromArgb(rn.Next(0,255), rn.Next(0, 255), rn.Next(0, 255));
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

107
VisEl/VisEl/MyTextBoxDate.Designer.cs generated Normal file
View File

@ -0,0 +1,107 @@
namespace VisEl
{
partial class MyTextBoxDate
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.dateTimePicker = new System.Windows.Forms.DateTimePicker();
this.labelEr = new System.Windows.Forms.Label();
this.labelMin = new System.Windows.Forms.Label();
this.labelMax = new System.Windows.Forms.Label();
this.panel = new System.Windows.Forms.Panel();
this.panel.SuspendLayout();
this.SuspendLayout();
//
// dateTimePicker
//
this.dateTimePicker.Location = new System.Drawing.Point(12, 22);
this.dateTimePicker.MaxDate = new System.DateTime(9998, 12, 3, 0, 0, 0, 0);
this.dateTimePicker.MinDate = new System.DateTime(1753, 1, 2, 0, 0, 0, 0);
this.dateTimePicker.Name = "dateTimePicker";
this.dateTimePicker.Size = new System.Drawing.Size(200, 22);
this.dateTimePicker.TabIndex = 0;
this.dateTimePicker.ValueChanged += new System.EventHandler(this.dateTimePicker_ValueChanged);
//
// labelEr
//
this.labelEr.AutoSize = true;
this.labelEr.Location = new System.Drawing.Point(27, 105);
this.labelEr.Name = "labelEr";
this.labelEr.Size = new System.Drawing.Size(0, 16);
this.labelEr.TabIndex = 1;
//
// labelMin
//
this.labelMin.AutoSize = true;
this.labelMin.Location = new System.Drawing.Point(27, 0);
this.labelMin.Name = "labelMin";
this.labelMin.Size = new System.Drawing.Size(28, 16);
this.labelMin.TabIndex = 2;
this.labelMin.Text = "Min";
//
// labelMax
//
this.labelMax.AutoSize = true;
this.labelMax.Location = new System.Drawing.Point(186, 0);
this.labelMax.Name = "labelMax";
this.labelMax.Size = new System.Drawing.Size(32, 16);
this.labelMax.TabIndex = 3;
this.labelMax.Text = "Max";
//
// panel
//
this.panel.Controls.Add(this.dateTimePicker);
this.panel.Location = new System.Drawing.Point(30, 19);
this.panel.Name = "panel";
this.panel.Size = new System.Drawing.Size(226, 72);
this.panel.TabIndex = 4;
//
// MyTextBoxDate
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panel);
this.Controls.Add(this.labelMax);
this.Controls.Add(this.labelMin);
this.Controls.Add(this.labelEr);
this.Name = "MyTextBoxDate";
this.Size = new System.Drawing.Size(316, 150);
this.panel.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.DateTimePicker dateTimePicker;
private System.Windows.Forms.Label labelEr;
private System.Windows.Forms.Label labelMin;
private System.Windows.Forms.Label labelMax;
private System.Windows.Forms.Panel panel;
}
}

View File

@ -0,0 +1,64 @@
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 VisEl
{
public partial class MyTextBoxDate : UserControl
{
public DateTime DateMin = new DateTime(1999, 1, 1);
public DateTime DateMax = new DateTime(2025, 12, 31);
public MyTextBoxDate()
{
InitializeComponent();
labelMin.Text = DateMin.ToShortDateString();
labelMax.Text = DateMax.ToShortDateString();
}
public DateTime DateMaximum {
get { return DateMax; }
set {
DateMax = value;
labelMax.Text = DateMax.ToString();
}
}
public DateTime DateMinimum
{
get { return DateMin; }
set
{
DateMin = value;
labelMin.Text = DateMin.ToString();
}
}
public string Value
{
get
{
if (dateTimePicker.Value > DateMax || dateTimePicker.Value < DateMin)
{
labelEr.ForeColor = Color.Red;
labelEr.Text = "Ошибка: Выход за допустимые пределы!!!";
return null; }
labelEr.Text = "";
return dateTimePicker.Value.ToShortDateString();
}
set
{
if (DateTime.Parse(value) > DateMax || DateTime.Parse(value) < DateMin) return;
dateTimePicker.Value = DateTime.Parse(value);
}
}
private void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
if (dateTimePicker.Value >= DateMinimum && dateTimePicker.Value <= DateMaximum) panel.BackColor = Color.LightBlue;
else panel.BackColor = Color.Red;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

59
VisEl/VisEl/MyTreeView.Designer.cs generated Normal file
View File

@ -0,0 +1,59 @@
namespace VisEl
{
partial class MyTreeView
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.treeView = new System.Windows.Forms.TreeView();
this.SuspendLayout();
//
// treeView
//
this.treeView.Location = new System.Drawing.Point(3, 3);
this.treeView.Name = "treeView";
this.treeView.Size = new System.Drawing.Size(421, 397);
this.treeView.TabIndex = 0;
//
// MyTreeView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.BackColor = System.Drawing.SystemColors.ControlDark;
this.Controls.Add(this.treeView);
this.Name = "MyTreeView";
this.Size = new System.Drawing.Size(427, 403);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TreeView treeView;
}
}

106
VisEl/VisEl/MyTreeView.cs Normal file
View File

@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VisEl
{
public partial class MyTreeView : UserControl
{
List<(string, bool)> hierarchy = new List<(string, bool)>();
public MyTreeView()
{
InitializeComponent();
}
public void addToHierarchy(string member , bool isolation) { hierarchy.Add((member, isolation)); }
public int GetId
{
get { return treeView.SelectedNode.Index; }
}
public string GetNode()
{
if (treeView.SelectedNode.FirstNode == null)
return treeView.SelectedNode.Text.ToString();
return null;
}
public void LoadTree<T>(List<T> nodes)
{
treeView.Nodes.Clear();
foreach (T node in nodes)
{
TreeNode parent = null;
Type type = node.GetType();
foreach((string, bool) step in hierarchy)
{
var aa = type.GetFields();
if (type.GetField(step.Item1) != null || type.GetProperty(step.Item1) != null)
{
var value = type.GetField(step.Item1) == null ? type.GetProperty(step.Item1).GetValue(node) : type.GetField(step.Item1).GetValue(node);
TreeNode[] nodesLevel;
if (parent == null)
{
if (step.Item2)
{
TreeNode newNode = new TreeNode(value.ToString());
newNode.Name = step.Item1;
treeView.Nodes.Add(newNode);
parent = newNode;
continue;
}
nodesLevel = treeView.Nodes.Find(step.Item1, false);
TreeNode currentNode = nodesLevel.FirstOrDefault(x => x.Text.Equals(value));
if (currentNode is null)
{
TreeNode newNode = new TreeNode(value.ToString());
newNode.Name = step.Item1;
treeView.Nodes.Add(newNode);
parent = newNode;
}else
{
parent = currentNode;
continue;
}
}
else
{
if (step.Item2)
{
TreeNode newNode = new TreeNode(value.ToString());
newNode.Name = step.Item1;
parent.Nodes.Add(newNode);
parent = newNode;
continue;
}
nodesLevel = parent.Nodes.Find(step.Item1, false);
TreeNode currentNode = nodesLevel.FirstOrDefault(x => x.Text.Equals(value));
if (currentNode is null)
{
TreeNode newNode = new TreeNode(value.ToString());
newNode.Name = step.Item1;
parent.Nodes.Add(newNode);
parent = newNode;
}else
{
parent = currentNode;
continue;
}
}
}
else break;
}
}
}
}
}

120
VisEl/VisEl/MyTreeView.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
// связанные со сборкой.
[assembly: AssemblyTitle("VisEl")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("VisEl")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// компонента COM, задайте для атрибута ComVisible этого типа значение TRUE.
[assembly: ComVisible(false)]
// Следующий идентификатор GUID представляет идентификатор typelib, если этот проект доступен через COM
[assembly: Guid("471de73a-592f-45f0-8249-9f6dd539682c")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Номер редакции
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

78
VisEl/VisEl/VisEl.csproj Normal file
View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{471DE73A-592F-45F0-8249-9F6DD539682C}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>VisEl</RootNamespace>
<AssemblyName>VisEl</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="MyTextBoxDate.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="MyTextBoxDate.Designer.cs">
<DependentUpon>MyTextBoxDate.cs</DependentUpon>
</Compile>
<Compile Include="MyTreeView.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="MyTreeView.Designer.cs">
<DependentUpon>MyTreeView.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MyCheckList.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="MyCheckList.Designer.cs">
<DependentUpon>MyCheckList.cs</DependentUpon>
</Compile>
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MyCheckList.resx">
<DependentUpon>MyCheckList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MyTextBoxDate.resx">
<DependentUpon>MyTextBoxDate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MyTreeView.resx">
<DependentUpon>MyTreeView.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>