commit b71f7a18cae7bee2da5403a48b362983be9e10b5 Author: Eugen Höglinger Date: Tue Jan 10 17:02:34 2023 +0100 Initialize - User Control mit dem Werte in eine XML Datei geschrieben werden können diff --git a/.vs/DuoMultiValueControl/FileContentIndex/303d44db-ab20-40c6-9d32-402326a8182f.vsidx b/.vs/DuoMultiValueControl/FileContentIndex/303d44db-ab20-40c6-9d32-402326a8182f.vsidx new file mode 100644 index 0000000..d6f40ff Binary files /dev/null and b/.vs/DuoMultiValueControl/FileContentIndex/303d44db-ab20-40c6-9d32-402326a8182f.vsidx differ diff --git a/.vs/DuoMultiValueControl/FileContentIndex/90dbb806-4f08-4970-99bd-928357237eeb.vsidx b/.vs/DuoMultiValueControl/FileContentIndex/90dbb806-4f08-4970-99bd-928357237eeb.vsidx new file mode 100644 index 0000000..326940c Binary files /dev/null and b/.vs/DuoMultiValueControl/FileContentIndex/90dbb806-4f08-4970-99bd-928357237eeb.vsidx differ diff --git a/.vs/DuoMultiValueControl/FileContentIndex/read.lock b/.vs/DuoMultiValueControl/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/.vs/DuoMultiValueControl/v17/.suo b/.vs/DuoMultiValueControl/v17/.suo new file mode 100644 index 0000000..b18b5bb Binary files /dev/null and b/.vs/DuoMultiValueControl/v17/.suo differ diff --git a/Daten/CallMethod_Nativ.xml b/Daten/CallMethod_Nativ.xml new file mode 100644 index 0000000..37bb6ed --- /dev/null +++ b/Daten/CallMethod_Nativ.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Daten/CallMethod_TeamCenter Prod.xml b/Daten/CallMethod_TeamCenter Prod.xml new file mode 100644 index 0000000..e54d07d --- /dev/null +++ b/Daten/CallMethod_TeamCenter Prod.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Daten/Group.xml b/Daten/Group.xml new file mode 100644 index 0000000..5d8551e --- /dev/null +++ b/Daten/Group.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/Language.xml b/Daten/Language.xml new file mode 100644 index 0000000..8574385 --- /dev/null +++ b/Daten/Language.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Daten/Management.xml b/Daten/Management.xml new file mode 100644 index 0000000..009adc3 --- /dev/null +++ b/Daten/Management.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_ NX 2206_CAD.xml b/Daten/NXenvironment_ NX 2206_CAD.xml new file mode 100644 index 0000000..4c43162 --- /dev/null +++ b/Daten/NXenvironment_ NX 2206_CAD.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_ NX 2206_CAM.xml b/Daten/NXenvironment_ NX 2206_CAM.xml new file mode 100644 index 0000000..4c43162 --- /dev/null +++ b/Daten/NXenvironment_ NX 2206_CAM.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_NX 1953_CAD.xml b/Daten/NXenvironment_NX 1953_CAD.xml new file mode 100644 index 0000000..9b6c01d --- /dev/null +++ b/Daten/NXenvironment_NX 1953_CAD.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_NX 1953_CAM.xml b/Daten/NXenvironment_NX 1953_CAM.xml new file mode 100644 index 0000000..9b6c01d --- /dev/null +++ b/Daten/NXenvironment_NX 1953_CAM.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_NX 2212_CAD.xml b/Daten/NXenvironment_NX 2212_CAD.xml new file mode 100644 index 0000000..986e789 --- /dev/null +++ b/Daten/NXenvironment_NX 2212_CAD.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NXenvironment_NX 2212_CAM.xml b/Daten/NXenvironment_NX 2212_CAM.xml new file mode 100644 index 0000000..986e789 --- /dev/null +++ b/Daten/NXenvironment_NX 2212_CAM.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Daten/NxVersions.xml b/Daten/NxVersions.xml new file mode 100644 index 0000000..205826e --- /dev/null +++ b/Daten/NxVersions.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Daten/NxVersions.xml_old b/Daten/NxVersions.xml_old new file mode 100644 index 0000000..0ad35a8 --- /dev/null +++ b/Daten/NxVersions.xml_old @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Daten/Pfeil_links.png b/Daten/Pfeil_links.png new file mode 100644 index 0000000..c8aa72b Binary files /dev/null and b/Daten/Pfeil_links.png differ diff --git a/Daten/Pfeil_oben.png b/Daten/Pfeil_oben.png new file mode 100644 index 0000000..b256203 Binary files /dev/null and b/Daten/Pfeil_oben.png differ diff --git a/Daten/Pfeil_rechts.png b/Daten/Pfeil_rechts.png new file mode 100644 index 0000000..0881380 Binary files /dev/null and b/Daten/Pfeil_rechts.png differ diff --git a/Daten/Pfeil_unten.png b/Daten/Pfeil_unten.png new file mode 100644 index 0000000..10ec1a8 Binary files /dev/null and b/Daten/Pfeil_unten.png differ diff --git a/Daten/Project.xml b/Daten/Project.xml new file mode 100644 index 0000000..530f643 --- /dev/null +++ b/Daten/Project.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Daten/Test.xml b/Daten/Test.xml new file mode 100644 index 0000000..4d7b4c8 --- /dev/null +++ b/Daten/Test.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Daten/Thumbs.db b/Daten/Thumbs.db new file mode 100644 index 0000000..4f58125 Binary files /dev/null and b/Daten/Thumbs.db differ diff --git a/DuoMultiValueControl.sln b/DuoMultiValueControl.sln new file mode 100644 index 0000000..ed0abf7 --- /dev/null +++ b/DuoMultiValueControl.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32901.215 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DuoMultiValueControl", "DuoMultiValueControl\DuoMultiValueControl.csproj", "{65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HE-DuoMultiValueControl", "HE-Test_Dll\HE-Test_DuoMultiValueControl.csproj", "{2B71D20F-009D-4089-8C69-98DCCFADF932}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1}.Release|Any CPU.Build.0 = Release|Any CPU + {2B71D20F-009D-4089-8C69-98DCCFADF932}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B71D20F-009D-4089-8C69-98DCCFADF932}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B71D20F-009D-4089-8C69-98DCCFADF932}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B71D20F-009D-4089-8C69-98DCCFADF932}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {59AAF131-8BF2-4032-93D1-76882EA9D29A} + EndGlobalSection +EndGlobal diff --git a/DuoMultiValueControl/DuoMultiValueControl.Designer.cs b/DuoMultiValueControl/DuoMultiValueControl.Designer.cs new file mode 100644 index 0000000..03b6b83 --- /dev/null +++ b/DuoMultiValueControl/DuoMultiValueControl.Designer.cs @@ -0,0 +1,266 @@ +namespace Eugen.ESystem.Windows.Forms +{ + partial class DuoMultiValueControl + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.groupBoxValueControl = new System.Windows.Forms.GroupBox(); + this.comboBoxGroup2 = new System.Windows.Forms.ComboBox(); + this.labelGroup2 = new System.Windows.Forms.Label(); + this.buttonCleanup = new System.Windows.Forms.Button(); + this.comboBoxGroup1 = new System.Windows.Forms.ComboBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.checkBoxEncryptValues = new System.Windows.Forms.CheckBox(); + this.buttonDown = new System.Windows.Forms.Button(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonSave = new System.Windows.Forms.Button(); + this.buttonLoad = new System.Windows.Forms.Button(); + this.dataGridViewValues = new System.Windows.Forms.DataGridView(); + this.ColumnName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColumnValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.labelGroup1 = new System.Windows.Forms.Label(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.groupBoxValueControl.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewValues)).BeginInit(); + this.SuspendLayout(); + // + // groupBoxValueControl + // + this.groupBoxValueControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxValueControl.Controls.Add(this.comboBoxGroup2); + this.groupBoxValueControl.Controls.Add(this.labelGroup2); + this.groupBoxValueControl.Controls.Add(this.buttonCleanup); + this.groupBoxValueControl.Controls.Add(this.comboBoxGroup1); + this.groupBoxValueControl.Controls.Add(this.panel1); + this.groupBoxValueControl.Controls.Add(this.buttonDown); + this.groupBoxValueControl.Controls.Add(this.buttonUp); + this.groupBoxValueControl.Controls.Add(this.buttonSave); + this.groupBoxValueControl.Controls.Add(this.buttonLoad); + this.groupBoxValueControl.Controls.Add(this.dataGridViewValues); + this.groupBoxValueControl.Controls.Add(this.labelGroup1); + this.groupBoxValueControl.Location = new System.Drawing.Point(0, 0); + this.groupBoxValueControl.Name = "groupBoxValueControl"; + this.groupBoxValueControl.Size = new System.Drawing.Size(316, 227); + this.groupBoxValueControl.TabIndex = 0; + this.groupBoxValueControl.TabStop = false; + this.groupBoxValueControl.Text = "Value control"; + // + // comboBoxGroup2 + // + this.comboBoxGroup2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxGroup2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxGroup2.FormattingEnabled = true; + this.comboBoxGroup2.Location = new System.Drawing.Point(109, 46); + this.comboBoxGroup2.Name = "comboBoxGroup2"; + this.comboBoxGroup2.Size = new System.Drawing.Size(120, 21); + this.comboBoxGroup2.TabIndex = 15; + this.comboBoxGroup2.SelectedIndexChanged += new System.EventHandler(this.comboBoxGroup2_SelectedIndexChanged); + this.comboBoxGroup2.TextChanged += new System.EventHandler(this.comboBoxGroup2_TextChanged); + // + // labelGroup2 + // + this.labelGroup2.Location = new System.Drawing.Point(6, 49); + this.labelGroup2.Name = "labelGroup2"; + this.labelGroup2.Size = new System.Drawing.Size(97, 13); + this.labelGroup2.TabIndex = 14; + this.labelGroup2.Text = "Group1 2"; + // + // buttonCleanup + // + this.buttonCleanup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCleanup.Location = new System.Drawing.Point(235, 72); + this.buttonCleanup.Name = "buttonCleanup"; + this.buttonCleanup.Size = new System.Drawing.Size(75, 23); + this.buttonCleanup.TabIndex = 13; + this.buttonCleanup.Text = "Cleanup"; + this.buttonCleanup.UseVisualStyleBackColor = true; + this.buttonCleanup.Click += new System.EventHandler(this.buttonCleanup_Click); + // + // comboBoxGroup1 + // + this.comboBoxGroup1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxGroup1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxGroup1.FormattingEnabled = true; + this.comboBoxGroup1.Location = new System.Drawing.Point(109, 19); + this.comboBoxGroup1.Name = "comboBoxGroup1"; + this.comboBoxGroup1.Size = new System.Drawing.Size(120, 21); + this.comboBoxGroup1.TabIndex = 12; + this.comboBoxGroup1.SelectedIndexChanged += new System.EventHandler(this.comboBoxGroup1_SelectedIndexChanged); + this.comboBoxGroup1.TextChanged += new System.EventHandler(this.comboBoxGroup1_TextChanged); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.Controls.Add(this.checkBoxEncryptValues); + this.panel1.Location = new System.Drawing.Point(235, 130); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(75, 62); + this.panel1.TabIndex = 11; + // + // checkBoxEncryptValues + // + this.checkBoxEncryptValues.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxEncryptValues.Location = new System.Drawing.Point(0, 22); + this.checkBoxEncryptValues.Name = "checkBoxEncryptValues"; + this.checkBoxEncryptValues.Size = new System.Drawing.Size(62, 17); + this.checkBoxEncryptValues.TabIndex = 6; + this.checkBoxEncryptValues.Text = "Encrypt"; + this.checkBoxEncryptValues.UseVisualStyleBackColor = true; + // + // buttonDown + // + this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonDown.BackgroundImage = global::Eugen.ESystem.Windows.Forms.Properties.Resources.Pfeil_unten; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonDown.Location = new System.Drawing.Point(235, 198); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(75, 23); + this.buttonDown.TabIndex = 10; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.Click += new System.EventHandler(this.buttonDown_Click); + // + // buttonUp + // + this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUp.BackgroundImage = global::Eugen.ESystem.Windows.Forms.Properties.Resources.Pfeil_oben; + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonUp.Location = new System.Drawing.Point(235, 101); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(75, 23); + this.buttonUp.TabIndex = 9; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.Click += new System.EventHandler(this.buttonUp_Click); + // + // buttonSave + // + this.buttonSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonSave.Location = new System.Drawing.Point(235, 43); + this.buttonSave.Name = "buttonSave"; + this.buttonSave.Size = new System.Drawing.Size(75, 23); + this.buttonSave.TabIndex = 8; + this.buttonSave.Text = "Save"; + this.buttonSave.UseVisualStyleBackColor = true; + this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); + // + // buttonLoad + // + this.buttonLoad.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonLoad.Location = new System.Drawing.Point(235, 17); + this.buttonLoad.Name = "buttonLoad"; + this.buttonLoad.Size = new System.Drawing.Size(75, 23); + this.buttonLoad.TabIndex = 7; + this.buttonLoad.Text = "Load"; + this.buttonLoad.UseVisualStyleBackColor = true; + this.buttonLoad.Click += new System.EventHandler(this.buttonLoad_Click); + // + // dataGridViewValues + // + this.dataGridViewValues.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridViewValues.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridViewValues.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.ColumnName, + this.ColumnValue}); + this.dataGridViewValues.Location = new System.Drawing.Point(6, 73); + this.dataGridViewValues.Name = "dataGridViewValues"; + this.dataGridViewValues.Size = new System.Drawing.Size(223, 148); + this.dataGridViewValues.TabIndex = 4; + this.dataGridViewValues.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.dataGridViewValues_RowsRemoved); + this.dataGridViewValues.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridViewValues_KeyDown); + // + // ColumnName + // + this.ColumnName.HeaderText = "Variable Name"; + this.ColumnName.MinimumWidth = 90; + this.ColumnName.Name = "ColumnName"; + this.ColumnName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Programmatic; + this.ColumnName.Width = 90; + // + // ColumnValue + // + this.ColumnValue.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.ColumnValue.HeaderText = "Variable Value"; + this.ColumnValue.MinimumWidth = 90; + this.ColumnValue.Name = "ColumnValue"; + // + // labelGroup1 + // + this.labelGroup1.Location = new System.Drawing.Point(6, 22); + this.labelGroup1.Name = "labelGroup1"; + this.labelGroup1.Size = new System.Drawing.Size(97, 13); + this.labelGroup1.TabIndex = 0; + this.labelGroup1.Text = "Group1 1"; + // + // openFileDialog + // + this.openFileDialog.FileName = "openFileDialog"; + // + // DuoMultiValueControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBoxValueControl); + this.MaximumSize = new System.Drawing.Size(800, 460); + this.MinimumSize = new System.Drawing.Size(316, 227); + this.Name = "DuoMultiValueControl"; + this.Size = new System.Drawing.Size(316, 227); + this.groupBoxValueControl.ResumeLayout(false); + this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewValues)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBoxValueControl; + private System.Windows.Forms.Button buttonSave; + private System.Windows.Forms.Button buttonLoad; + private System.Windows.Forms.CheckBox checkBoxEncryptValues; + private System.Windows.Forms.DataGridView dataGridViewValues; + private System.Windows.Forms.Label labelGroup1; + private System.Windows.Forms.Button buttonDown; + private System.Windows.Forms.Button buttonUp; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnName; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnValue; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ComboBox comboBoxGroup1; + private System.Windows.Forms.Button buttonCleanup; + private System.Windows.Forms.ComboBox comboBoxGroup2; + private System.Windows.Forms.Label labelGroup2; + } +} diff --git a/DuoMultiValueControl/DuoMultiValueControl.cs b/DuoMultiValueControl/DuoMultiValueControl.cs new file mode 100644 index 0000000..ca85312 --- /dev/null +++ b/DuoMultiValueControl/DuoMultiValueControl.cs @@ -0,0 +1,867 @@ +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; +using System.IO; +using System.Reflection; +using System.Xml.Linq; +using System.Windows.Markup; +using AppRes = Eugen.ESystem.Windows.Forms.Properties.AppResources; +using System.Windows.Shapes; + +namespace Eugen.ESystem.Windows.Forms +{ + public partial class DuoMultiValueControl : UserControl + { + #region Version und Copyright + // Keys und Copyright + static string dllName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + static string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + static string copyright = GenerateCopyright(); + string icon = Application.StartupPath + "\\Info.bmp"; + //Assembly Datum und Zeit + static DateTime value = AssemblyDateTime(); + string date = value.ToShortDateString(); + string time = value.ToLongTimeString(); + private static DateTime AssemblyDateTime() + { + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); + //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) + return buildDateTime; + } + + private static string CurrentYear() + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + + private static string StartYear() + { + string startYear = ""; + if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) + { + startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); + while (startYear.StartsWith(" ")) + { + startYear = startYear.Remove(0, 1); + } + startYear = startYear.Remove(startYear.IndexOf(" ")); + return startYear; + } + else + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + } + + private static string GenerateCopyright() + { + string startYear = StartYear(); + string currentYear = CurrentYear(); + + if (startYear == currentYear) + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + else + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace(startYear, String.Concat(startYear, "-", currentYear)); + } + } + #endregion + + #region DLL-Info + /// + /// Contains the name of the dll file. + /// + public static string DllName { private set; get; } + + /// + /// Contains the version of the dll file. + /// + public static string DllVersion { private set; get; } + + /// + /// Contains the copyright notice. + /// + public static string Copyright { private set; get; } + + /// + /// Contains the name-, version- and copyright-information of the dll file. + /// + public static string[] DllInfo { private set; get; } + + private static void SetDllInfo() + { + //Name, Keys und Copyright setzen + DllName = dllName; + DllVersion = dllVersion; + Copyright = copyright; + } + #endregion + + static DuoMultiValueControl() + { + SetDllInfo(); //Name, Keys und Copyright der DLL setzen + } + + /// + /// Creates a control with which the values in an XML file can be edited + /// + public DuoMultiValueControl() + { + InitializeComponent(); + InitialDirectory = @"C:\"; + Topic = "Topic"; + StandardValue = 0; + } + + #region Public values + /// + /// The password used for encryption. An empty value disables the Encrypt values switch + /// + public string Password + { + get { return password; } + set + { + password = value; + checkBoxEncryptValues.Enabled = !String.IsNullOrEmpty(Password); + } + } + + /// + /// Defines or read the initial directory + /// + public string InitialDirectory { set; get; } + + /// + /// XML file name. Must be specified mandatory + /// + public string XMLfileName { set; get; } + + /// + /// XML group 1 file name. Must be specified mandatory and defines the XML file in which the groups are stored + /// + public string XMLgroup1FileName { set; get; } + + /// + /// XML group 2 file name. Must be specified mandatory and defines the XML file in which the groups are stored + /// + public string XMLgroup2FileName { set; get; } + + /// + /// Adjusts the labeling of the values control. An empty value forces the default labeling + /// + public string ValueControlName + { + get { return groupBoxValueControl.Text; } + set + { + groupBoxValueControl.Text = value; + groupBoxValueControl.Refresh(); + } + } + + /// + /// Defines the Topic. An empty value forces the default labeling + /// + public string Topic { set; get; } + + /// + /// Adjusts the labeling of the group 1 designation. An empty value forces the default labeling + /// + public string GroupName1 + { + get { return labelGroup1.Text; } + set { labelGroup1.Text = value; } + } + + /// + /// Adjusts the labeling of the group 2 designation. An empty value forces the default labeling + /// + public string GroupName2 + { + get { return labelGroup2.Text; } + set { labelGroup2.Text = value; } + } + + /// + /// Changes the name of the group 1 attribute used in the XML file, which is displayed and must be included in groups. Required for the Load function + /// + public string Group1 { set; get; } + + /// + /// Changes the name of the group 2 attribute used in the XML file, which is displayed and must be included in groups. Required for the Load function + /// + public string Group2 { set; get; } + + /// + /// List of group 1 attribute names. Required for the Load function + /// + public string[] Groups1 { set; get; } + + /// + /// List of group 2 attribute names. Required for the Load function + /// + public string[] Groups2 { set; get; } + + /// + /// Adjusts the name of the key attribute used in the XML file. Required by the Load function + /// + public string Key { set; get; } + + /// + /// Adjusts the labeling of the table header designation for the key. An empty value forces the default labeling + /// + public string TableKeyName + { + get { return dataGridViewValues.Columns[0].HeaderText; } + set { dataGridViewValues.Columns[0].HeaderText = value; } + } + + /// + /// Adjusts the labeling of the table header designation for the value. An empty value forces the default labeling + /// + public string TableValueName + { + get { return dataGridViewValues.Columns[1].HeaderText; } + set { dataGridViewValues.Columns[1].HeaderText = value; } + } + + /// + /// Adjusts the labeling of the encrypt value checkBox. An empty value forces the default labeling + /// + public string CheckBoxEncryptValueText + { + get { return checkBoxEncryptValues.Text; } + set + { + checkBoxEncryptValues.Text = value; + checkBoxEncryptValues.Enabled = !String.IsNullOrEmpty(Password); + } + } + + /// + /// Controls whether values are always encrypted. An empty value forces the default value (false) + /// + public bool AlwaysEncrypted + { + get { return alwaysEncrypted; } + set + { + alwaysEncrypted = value; + checkBoxEncryptValues.Enabled = !alwaysEncrypted; + checkBoxEncryptValues.Checked = alwaysEncrypted; + } + } + #endregion + + #region Private values + private string password; + private bool alwaysEncrypted = false; + private bool standardValueSet = false; + private int selectedRow = 0; + private int rowIndexColored = 0; + private int StandardValue { get; set; } + private string XmlFileName { get; set; } + private string OldXMLfileName { get; set; } + private List OldNameData { get; set; } + private List OldValueData { get; set; } + private List NewNameData { get; set; } + private List NewValueData { get; set; } + private bool OldEcryptStatus { get; set; } + private bool NewEcryptStatus { get; set; } + #endregion + + private void comboBoxGroup1_SelectedIndexChanged(object sender, EventArgs e) + { + SelectedIndexChanged(); + } + + private void comboBoxGroup2_SelectedIndexChanged(object sender, EventArgs e) + { + SelectedIndexChanged(); + } + + private void SelectedIndexChanged() + { + if (comboBoxGroup1.Items.Count != 0) + { + Group1 = comboBoxGroup1.SelectedItem.ToString(); + } + + if (comboBoxGroup2.Items.Count != 0) + { + Group2 = comboBoxGroup2.SelectedItem.ToString(); + } + + if (!String.IsNullOrEmpty(Group1) & !String.IsNullOrEmpty(Group2)) + { + XmlFileName = String.Concat(XMLfileName.Replace(".xml", ""), "_", Group1, "_", Group2, ".xml"); + OldXMLfileName = XmlFileName; + //XMLfileName = String.Concat(InitialDirectory, "\\", Group1, ".xml"); + + buttonSave.Enabled = (!String.IsNullOrEmpty(comboBoxGroup1.Text)) & (!String.IsNullOrEmpty(comboBoxGroup2.Text)); + + //OldNameData und OldValueDate schreiben + SetData("new"); + + if (File.Exists(XmlFileName)) + { + if (dataGridViewValues.Rows.Count > 1) + { + //Wurden in der Datagridview Werte geändert, dann speichern + if (HasAnyDataChanged()) + { + DialogResult result = MessageBox.Show(AppRes.msgBoxTxt003, AppRes.msgBoxCapt003, MessageBoxButtons.YesNo, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + //Datagridview speichern + SaveXML(OldXMLfileName); + } + } + } + + //Datagridview leeren und XML Laden + dataGridViewValues.Rows.Clear(); + LoadXML(); + } + else + { + if (dataGridViewValues.Rows.Count > 1) + { + //Wurden in der Datagridview Werte geändert, dann speichern + if (HasAnyDataChanged()) + { + DialogResult result = MessageBox.Show(AppRes.msgBoxTxt003, AppRes.msgBoxCapt003, MessageBoxButtons.YesNo, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + //Datagridview speichern + SaveXML(OldXMLfileName); + } + } + } + + dataGridViewValues.Rows.Clear(); + MessageBox.Show(AppRes.msgBoxTxt002, AppRes.msgBoxCapt002, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + + //OldNameData und OldValueDate schreiben + SetData("old"); + } + + } + + private void comboBoxGroup1_TextChanged(object sender, EventArgs e) + { + buttonSave.Enabled = (!String.IsNullOrEmpty(comboBoxGroup1.Text)); + } + + private void comboBoxGroup2_TextChanged(object sender, EventArgs e) + { + buttonSave.Enabled = (!String.IsNullOrEmpty(comboBoxGroup2.Text)); + } + + private void buttonUp_Click(object sender, EventArgs e) + { + if (dataGridViewValues.SelectedCells.Count > 0) + { + int index = dataGridViewValues.SelectedCells[0].OwningRow.Index; + + if (index > 0) + { + int col = dataGridViewValues.SelectedCells[0].OwningColumn.Index; + + DataGridViewRowCollection rows = dataGridViewValues.Rows; + DataGridViewRow row = rows[index]; + + rows.Remove(row); + rows.Insert(index - 1, row); + + dataGridViewValues.ClearSelection(); + + dataGridViewValues.Rows[index - 1].Cells[col].Selected = true; + } + } + } + + private void buttonDown_Click(object sender, EventArgs e) + { + if (dataGridViewValues.SelectedCells.Count > 0) + { + int index = dataGridViewValues.SelectedCells[0].OwningRow.Index; + + if (index < dataGridViewValues.Rows.Count - 2) + { + int col = dataGridViewValues.SelectedCells[0].OwningColumn.Index; + + DataGridViewRowCollection rows = dataGridViewValues.Rows; + DataGridViewRow row = rows[index]; + + rows.Remove(row); + rows.Insert(index + 1, row); + + dataGridViewValues.ClearSelection(); + + dataGridViewValues.Rows[index + 1].Cells[col].Selected = true; + } + } + } + + private void buttonLoad_Click(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(XmlFileName)) + { + openFileDialog.Title = AppRes.dlgOpenTitle; + openFileDialog.InitialDirectory = InitialDirectory; + openFileDialog.FileName = ""; + openFileDialog.Filter = AppRes.dlgFilter; //"xml files (*.xml)|*.xml|All files (*.*)|*.*" + openFileDialog.FilterIndex = 1; + openFileDialog.RestoreDirectory = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + XmlFileName = openFileDialog.FileName; + + LoadXML(); + } + } + else + { + if (File.Exists(XmlFileName)) + { + LoadXML(); + } + else + { + MessageBox.Show(AppRes.msgBoxTxt001, AppRes.msgBoxCapt001, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + } + + private void buttonSave_Click(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(XmlFileName)) + { + saveFileDialog.Title = AppRes.dlgSaveTitle; + saveFileDialog.InitialDirectory = InitialDirectory; + saveFileDialog.Filter = AppRes.dlgFilter; //"xml files (*.xml)|*.xml|All files (*.*)|*.*" + saveFileDialog.FilterIndex = 1; + saveFileDialog.RestoreDirectory = true; + + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + SaveXML(XmlFileName); + } + } + else + { + SaveXML(XmlFileName); + } + } + + private void buttonCleanup_Click(object sender, EventArgs e) + { + //Alle XML-Dateien auslesen die mit 'XmlFileName' beginnen + List collectedXmlFiles = new List(); + + collectedXmlFiles.AddRange(CollectAllFiles()); + + //Alle XML-Dateien aus der Liste auslesen die in 'Groups1' und 'Groups2' vorkommen + List collectedPatternFiles = new List(); + + collectedPatternFiles.AddRange(CollectPatternFiles(collectedXmlFiles)); + + //Alle XML-Dateien aus der Liste löschen, die in 'Groups1' und 'Groups2' nicht vorkommen + List filesToDelete= new List(); + + filesToDelete.AddRange(FilesToDelete(collectedXmlFiles, collectedPatternFiles)); + + if (filesToDelete.Count != 0) + { + try + { + foreach (string file in filesToDelete) + { + File.Delete(file); + } + MessageBox.Show(AppRes.msgBoxTxt005, AppRes.msgBoxCapt004, MessageBoxButtons.OK); + } + catch (Exception) + { + MessageBox.Show(AppRes.msgBoxTxt004, AppRes.msgBoxCapt002, MessageBoxButtons.OK); + } + } + } + + private List CollectAllFiles() + { + //Alle XML-Dateien auslesen die mit 'NXenvironment' beginnen + string path = System.IO.Path.GetDirectoryName(XMLfileName); + string[] origXmlFiles = Directory.GetFiles(path); + List collectedXmlFiles = new List(); + + for (int i = 0; i < origXmlFiles.Length; i++) + { + //origXmlFiles[i] = Path.GetFileName(origXmlFiles[i]); + + if (System.IO.Path.GetFileName(origXmlFiles[i]).StartsWith(System.IO.Path.GetFileNameWithoutExtension(XMLfileName))) + { + collectedXmlFiles.Add(origXmlFiles[i]); + } + } + return collectedXmlFiles; + } + + private List CollectPatternFiles(List collectedXmlFiles) + { + //Alle XML-Dateien aus der Liste auslesen die in 'Groups1' und 'Groups2' vorkommen + + string tempFile = ""; + List tempFoundedFiles = new List(); + List foundedFiles = new List(); + + foreach (string file in collectedXmlFiles) + { + tempFile = (System.IO.Path.GetFileNameWithoutExtension(file)).Replace(System.IO.Path.GetFileNameWithoutExtension(XMLfileName) + "_", ""); + + foreach (var pattern1 in Groups1) + { + if (tempFile.StartsWith(pattern1)) + { + tempFoundedFiles.Add(file); //Wenn der Anfang übereinstimmt, dann die Datei zur Liste hinzufügen + } + } + } + + foreach (string file in tempFoundedFiles) + { + foreach (var pattern2 in Groups2) + { + if (System.IO.Path.GetFileNameWithoutExtension(file).EndsWith(pattern2)) + { + foundedFiles.Add(file); //Wenn der Anfang übereinstimmt, dann die Datei zur Liste hinzufügen + } + } + } + + return foundedFiles; + } + + private List FilesToDelete(List collectedXmlFiles, List collectedPatternFiles) + { + List filesToDelete= new List(); + + filesToDelete.AddRange(collectedXmlFiles); + + if (collectedPatternFiles.Count == 0) + { + return collectedXmlFiles; + } + + foreach (string pattern in collectedPatternFiles) + { + foreach (string file in collectedXmlFiles) + { + if (file == pattern) + { + filesToDelete.Remove(pattern); + } + } + } + + return filesToDelete; + } + + private void dataGridViewValues_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Delete) + { + selectedRow = dataGridViewValues.SelectedCells[0].RowIndex + 1; //Wenn die Zeile gelöscht wird, dann die Zeilennummer merken + } + } + + private void dataGridViewValues_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e) + { + //Wenn die gelöschte Zeile den Standardwert enthielt, dann die WErte zurücksetzten, weil es keinen Standardwert mehr gibt + if (selectedRow == rowIndexColored) + { + StandardValue = 0; //Es gibt keine ausgewählte Standardzeile + standardValueSet = false; //es gibt keinen Standardwert + + rowIndexColored = 0; //Es gibt keine umgefärbte Zeile + } + } + + public void SetBasicValues() + { + Groups1 = ReadGroups(XMLgroup1FileName); + + if (Groups1 != null) + { + comboBoxGroup1.Items.Clear(); + for (int i = 0; i < Groups1.Length; i++) + { + comboBoxGroup1.Items.Add(Groups1[i]); + } + + comboBoxGroup1.SelectedIndex = 0; + } + + Groups2 = ReadGroups(XMLgroup2FileName); + + if (Groups2 != null) + { + comboBoxGroup2.Items.Clear(); + for (int i = 0; i < Groups2.Length; i++) + { + comboBoxGroup2.Items.Add(Groups2[i]); + } + + comboBoxGroup2.SelectedIndex = 0; + } + } + + private void LoadXML() + { + checkBoxEncryptValues.Checked = false; + + var loadXML = new LoadXML(); + loadXML.FileName = String.Concat(XMLfileName.Replace(".xml", ""), "_", Group1, "_", Group2, ".xml"); + loadXML.Load(); + string[] values = new string[loadXML.Values.Length]; + values = loadXML.Values; + + if (!String.IsNullOrEmpty(Group1) & !String.IsNullOrEmpty(Group2)) + { + loadXML.Group = Group1 + "_" + Group2; + } + + for (int i = 0; i < values.Length; i++) + { + if (values[i].StartsWith("$$$$")) + { + values[i] = Decrypt(values[i], Password); + checkBoxEncryptValues.Checked = true; //Wenn ein verschlüsseltes Element gefunden wurde, dann setzen + } + + dataGridViewValues.Rows.Add(loadXML.Keys[i], values[i]); + } + + dataGridViewValues.Refresh(); + + comboBoxGroup1.Text = loadXML.Group.Remove(loadXML.Group.LastIndexOf("_")); //Gruppe setzen + comboBoxGroup2.Text = loadXML.Group.Remove(0, loadXML.Group.LastIndexOf("_")); //Gruppe setzen + + SetData("old"); //Die geladenen Daten setzten + } + + private string[] LoadGroup() + { + string[] values = new string[comboBoxGroup1.Items.Count]; + + for (int i = 0; i < comboBoxGroup1.Items.Count; i++) + { + values[i] = comboBoxGroup1.Items[i].ToString(); + } + + for (int i = 0; i < values.Length; i++) + { + if (values[i].StartsWith("$$$$")) + { + values[i] = Decrypt(values[i], Password); + } + } + + return values; + } + + private void SaveXML(string xmlFileName) + { + if (!Directory.Exists(System.IO.Path.GetDirectoryName(xmlFileName))) + { + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(xmlFileName)); //Wenn das Verzeichnis nicht existiert, dann erzeugen + } + + int dgvLength = dataGridViewValues.RowCount - 1; + string[] keys = new string[dgvLength]; + string value = ""; + string[] values = new string[dgvLength]; + + for (int i = 0; i < dgvLength; i++) + { + if (checkBoxEncryptValues.Checked) + { + value = Encrypt(dataGridViewValues[1, i].Value.ToString(), Password); //Verschlüsselt + } + else + { + value = dataGridViewValues[1, i].Value.ToString(); //Unverschlüsselt + } + + keys[i] = dataGridViewValues[0, i].Value.ToString(); ; + values[i] = value; + } + + //Speichern + var saveXML = new SaveXML(); + + saveXML.FileName = xmlFileName; + saveXML.Topic = "NX-Portal"; //z.B. "NX-Portal" + saveXML.Group = comboBoxGroup1.Text; //z.B. "NX 1953" + saveXML.Keys = keys; //z.B. "UGII_ENV" + saveXML.Values = values; //z.B. "M:\ug\NX1953_NXTC\global\00_DEFAULTS\UGII\ugii_env.dat" + + saveXML.Save(); + + //OldNameData und OldValueDate schreiben + SetData("old"); + } + + private string Encrypt(string clearText, string password) + { + var crypt = new Cryption(); + return String.Concat("$$$$", crypt.EncryptString(clearText, password)); + } + + private string Decrypt(string encryptedText, string password) + { + var crypt = new Cryption(); + return crypt.DecryptString(encryptedText.Replace("$$$$", ""), password); + } + + private void SetData(string stage) + { + int dgvLength = dataGridViewValues.RowCount - 1; + + if (stage == "old") + { + //Old Data + List oldNameData = new List(); + List oldValueData = new List(); + + for (int i = 0; i < dgvLength; i++) + { + oldNameData.Add(dataGridViewValues[0, i].Value.ToString()); + oldValueData.Add(dataGridViewValues[1, i].Value.ToString()); + } + + OldNameData = oldNameData; + OldValueData = oldValueData; + OldEcryptStatus = checkBoxEncryptValues.Checked; + } + else + { + //New Data + List newNameData = new List(); + List newValueData = new List(); + + for (int i = 0; i < dgvLength; i++) + { + newNameData.Add(dataGridViewValues[0, i].Value.ToString()); + newValueData.Add(dataGridViewValues[1, i].Value.ToString()); + } + + NewNameData = newNameData; + NewValueData = newValueData; + NewEcryptStatus = checkBoxEncryptValues.Checked; + } + } + + private bool HasAnyDataChanged() + { + int dgvLength = dataGridViewValues.RowCount - 1; + bool hasChanged = false; + + if (OldNameData.Count != NewNameData.Count) + { + hasChanged = true; + } + else + { + for (int i = 0; i < dgvLength; i++) + { + if (OldNameData[i] != NewNameData[i]) + { + hasChanged = true; + } + + if (OldValueData[i] != NewValueData[i]) + { + hasChanged = true; + } + + if (OldEcryptStatus != NewEcryptStatus) + { + hasChanged = true; + } + } + } + + return hasChanged; + } + + /// + /// Reads the groups from a XML file + /// + private string[] ReadGroups(string xmlFileName) + { + if (File.Exists(xmlFileName)) + { + var sivco = new SingleValueControl(); + + sivco.XMLfileName = xmlFileName; + sivco.Password = Password; + + return sivco.GetValues(); + } + else + { + return null; + } + } + + /// + /// Sets a customer width of the user control + /// + /// The width. Min=316, Max=800 + public void SetDialogWidth(int width) + { + if (width >= this.MinimumSize.Width && width <= this.MaximumSize.Width) + { + this.Width = width; + + int dif = width - 316; + + if (dif > 0) + { + dataGridViewValues.Columns[0].Width += dif / 2; + } + } + } + + /// + /// Sets a customer height of the user control + /// + /// The width. Min=227, Max=460 + public void SetDialogHeight(int height) + { + if (height >= this.MinimumSize.Height && height <= this.MaximumSize.Height) + { + this.Height = height; + } + } + } +} diff --git a/DuoMultiValueControl/DuoMultiValueControl.csproj b/DuoMultiValueControl/DuoMultiValueControl.csproj new file mode 100644 index 0000000..8ac5b85 --- /dev/null +++ b/DuoMultiValueControl/DuoMultiValueControl.csproj @@ -0,0 +1,101 @@ + + + + + Debug + AnyCPU + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1} + Library + Eugen.ESystem.Windows.Forms + hedmvalcon + v4.7.2 + 512 + false + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\..\_DLL\Cryption.git\Cryption\bin\Debug\hecryption.dll + + + ..\..\SingleValueControl.git\SingleValueControl\bin\Debug\hesvalcon.dll + + + + + + + + + + + + + + + + + True + True + AppResources.resx + + + True + True + Resources.resx + + + + UserControl + + + DuoMultiValueControl.cs + + + + + + + DuoMultiValueControl.cs + + + + + ResXFileCodeGenerator + AppResources.Designer.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + DuoMultiValueControl.cs + + + + + + + + + + \ No newline at end of file diff --git a/DuoMultiValueControl/DuoMultiValueControl.de.resx b/DuoMultiValueControl/DuoMultiValueControl.de.resx new file mode 100644 index 0000000..7ce12aa --- /dev/null +++ b/DuoMultiValueControl/DuoMultiValueControl.de.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bereinigen + + + + 0, 22 + + + 73, 17 + + + Chiffrieren + + + Speichern + + + Laden + + + Alle Werte + + + 42, 13 + + + Gruppe + + + Werte Steuerung + + \ No newline at end of file diff --git a/DuoMultiValueControl/DuoMultiValueControl.resx b/DuoMultiValueControl/DuoMultiValueControl.resx new file mode 100644 index 0000000..f924feb --- /dev/null +++ b/DuoMultiValueControl/DuoMultiValueControl.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 150, 17 + + \ No newline at end of file diff --git a/DuoMultiValueControl/LoadXML.cs b/DuoMultiValueControl/LoadXML.cs new file mode 100644 index 0000000..59f7880 --- /dev/null +++ b/DuoMultiValueControl/LoadXML.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using System.Xml.XPath; + +namespace Eugen.ESystem.Windows.Forms +{ + internal class LoadXML + { + public string FileName { get; set; } + public string Topic { get; set; } //z.B. "NX-Portal" + public string Group { get; set; } //z.B. "NX 1953" + public string[] Keys { get; set; } //z.B. "UGII_ENV" + public string[] Values { get; set; } //z.B. "M:\ug\NX1953_NXTC\global\00_DEFAULTS\UGII\ugii_env.dat" + + public void Load() + { + // Das Dokument in eine neue XElement-Instanz laden + XElement rootElement = XElement.Load(FileName); + + // Auflistung für die Gruppe erzeugen + List groups = new List(); + + //Alle groups-Elemente einlesen und durchgehen + //var personElements = rootElement.Elements(Group1); + var groupElements = rootElement.Elements(); + + int i = 0; + string[] temp = new string[5]; + List lkeys = new List(); + List lvalues = new List(); + + foreach (var groupElement in groupElements) + { + temp = groupElement.ToString().Split(' '); + + if (String.IsNullOrEmpty(Group)) + { + Group = ExtractGroup(temp); + } + lkeys.Add(ExtractKey(temp)); + lvalues.Add(ExtractValue(temp)); + + i++; + } + + string[] keys = new string[lkeys.Count]; + string[] values = new string[lvalues.Count]; + + for (int j = 0; j < lkeys.Count; j++) + { + keys[j] = lkeys[j]; + values[j] = lvalues[j]; + } + + Keys = keys; + Values = values; + } + + private string ExtractGroup(string[] temp) + { + return temp[0].Remove(0, 1); + } + + private string ExtractKey(string[] temp) + { + return temp[1].Remove(temp[1].IndexOf("=")); + } + + private string ExtractValue(string[] temp) + { + return temp[1].Remove(0, temp[1].IndexOf("=") + 1).Replace("\"", ""); + } + } + + class Topics + { + public string Key; + public string Value; + } +} diff --git a/DuoMultiValueControl/LoadXML.cs_old b/DuoMultiValueControl/LoadXML.cs_old new file mode 100644 index 0000000..968ec2b --- /dev/null +++ b/DuoMultiValueControl/LoadXML.cs_old @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using System.Xml.XPath; + +namespace Eugen.ESystem.Windows.Forms +{ + internal class LoadXML + { + public string FileName { get; set; } + public string Topic { get; set; } //z.B. "NX-Portal" + public string Group { get; set; } //z.B. "NX" + public string Key { get; set; } //z.B. "Version" + public string[] Values { get; set; } //z.B. "NX 1953" + public string Standard { get; set; } //z.B. "yes" + + public void Load() + { + // Das Dokument in eine neue XElement-Instanz laden + XElement rootElement = XElement.Load(@"C:\Temp\Test\Test.xml"); + + // Auflistung für die Gruppe erzeugen + List groups = new List(); + + //Alle groups-Elemente einlesen und durchgehen + //var personElements = rootElement.Elements(Group); + var groupElements = rootElement.Elements(); + foreach (var groupElement in groupElements) + { + //Neue Gruppe erzeugen und in der Auflistung ablegen + Topics group = new Topics(); + groups.Add(group); + + //Das Attribut id einlesen + XAttribute idAttribute = groupElement.Attribute("Id"); + if (idAttribute != null) + { + group.Id = idAttribute.Value; + } + + //Key-Element suchen und speichern + XAttribute keyAttribut = groupElement.Attribute(Key); + if (keyAttribut != null) + { + group.Version = keyAttribut.Value; + } + + //Standard-Element suchen und speichern + XAttribute standardAttribut = groupElement.Attribute("Standard"); + if (standardAttribut != null) + { + group.Standard = standardAttribut.Value; + } + } + } + + public void LoadData() + { + //XElement zum Lesen erzeugen + XElement personsXML = XElement.Load(FileName); + //XDocument personsXML = XDocument.Load(FileName); + + //Alle Aliens abfragen + var persons = + from person in personsXML.Descendants("person") + where person.Element("type").Value == "Alien" + select new + { + Id = (int)person.Attribute("id"), + FirstName = person.Element("firstname").Value, + LastName = person.Element("lastname").Value + }; + + //Die abgefragten Personen durchgehen und derern Daten ausgeben + foreach (var person in persons) + { + //TODO: + } + } + } + + class Topics + { + public string Id; + public string Version; + public string Standard; + } +} diff --git a/DuoMultiValueControl/Properties/AppResources.Designer.cs b/DuoMultiValueControl/Properties/AppResources.Designer.cs new file mode 100644 index 0000000..aa1dcf7 --- /dev/null +++ b/DuoMultiValueControl/Properties/AppResources.Designer.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace Eugen.ESystem.Windows.Forms.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class AppResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal AppResources() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Eugen.ESystem.Windows.Forms.Properties.AppResources", typeof(AppResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die xml files (*.xml)|*.xml|All files (*.*)|*.* ähnelt. + /// + internal static string dlgFilter { + get { + return ResourceManager.GetString("dlgFilter", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Open XML file ähnelt. + /// + internal static string dlgOpenTitle { + get { + return ResourceManager.GetString("dlgOpenTitle", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Save XML file ähnelt. + /// + internal static string dlgSaveTitle { + get { + return ResourceManager.GetString("dlgSaveTitle", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Error ähnelt. + /// + internal static string msgBoxCapt001 { + get { + return ResourceManager.GetString("msgBoxCapt001", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Warning ähnelt. + /// + internal static string msgBoxCapt002 { + get { + return ResourceManager.GetString("msgBoxCapt002", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Question ähnelt. + /// + internal static string msgBoxCapt003 { + get { + return ResourceManager.GetString("msgBoxCapt003", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Information ähnelt. + /// + internal static string msgBoxCapt004 { + get { + return ResourceManager.GetString("msgBoxCapt004", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die File not found! ähnelt. + /// + internal static string msgBoxTxt001 { + get { + return ResourceManager.GetString("msgBoxTxt001", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die No configuration file exists yet for this selection. + ///Values have to be defined and saved first. ähnelt. + /// + internal static string msgBoxTxt002 { + get { + return ResourceManager.GetString("msgBoxTxt002", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Should the values be saved? ähnelt. + /// + internal static string msgBoxTxt003 { + get { + return ResourceManager.GetString("msgBoxTxt003", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Data was found, but the cleanup + ///could not be completed successfully. ähnelt. + /// + internal static string msgBoxTxt004 { + get { + return ResourceManager.GetString("msgBoxTxt004", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Data was successfully cleaned. ähnelt. + /// + internal static string msgBoxTxt005 { + get { + return ResourceManager.GetString("msgBoxTxt005", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die The file was saved successfully. ähnelt. + /// + internal static string msgBoxTxt006 { + get { + return ResourceManager.GetString("msgBoxTxt006", resourceCulture); + } + } + } +} diff --git a/DuoMultiValueControl/Properties/AppResources.de.resx b/DuoMultiValueControl/Properties/AppResources.de.resx new file mode 100644 index 0000000..a7ef6a6 --- /dev/null +++ b/DuoMultiValueControl/Properties/AppResources.de.resx @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + xml Datei (*.xml)|*.xml|Alle Dateien (*.*)|*.* + + + Öffne XML Datei + + + Speichere XML Datei + + + Fehler + + + Warnung + + + Frage + + + Information + + + Datei wurde nicht gefunden! + + + Für diese Auswahl existiert noch keine Konfigurationsdatei. +Es müssen erst noch Werte definiert und gespeichert werden. + + + Sollen die Werte gespeichert werden? + + + Daten wurden gefunden, aber die Bereinigung +konnte nicht erfolgreich beendet werden. + + + Daten wurden erfolgreich bereinigt. + + + Die Datei wurde erfolgreich gespeichert. + + \ No newline at end of file diff --git a/DuoMultiValueControl/Properties/AppResources.en.resx b/DuoMultiValueControl/Properties/AppResources.en.resx new file mode 100644 index 0000000..9421c30 --- /dev/null +++ b/DuoMultiValueControl/Properties/AppResources.en.resx @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + xml files (*.xml)|*.xml|All files (*.*)|*.* + + + Open XML file + + + Save XML file + + + Error + + + Warning + + + Question + + + Information + + + File not found! + + + No configuration file exists yet for this selection. +Values have to be defined and saved first. + + + Should the values be saved? + + + Data was found, but the cleanup +could not be completed successfully. + + + Data was successfully cleaned. + + + The file was saved successfully. + + \ No newline at end of file diff --git a/DuoMultiValueControl/Properties/AppResources.resx b/DuoMultiValueControl/Properties/AppResources.resx new file mode 100644 index 0000000..9421c30 --- /dev/null +++ b/DuoMultiValueControl/Properties/AppResources.resx @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + xml files (*.xml)|*.xml|All files (*.*)|*.* + + + Open XML file + + + Save XML file + + + Error + + + Warning + + + Question + + + Information + + + File not found! + + + No configuration file exists yet for this selection. +Values have to be defined and saved first. + + + Should the values be saved? + + + Data was found, but the cleanup +could not be completed successfully. + + + Data was successfully cleaned. + + + The file was saved successfully. + + \ No newline at end of file diff --git a/DuoMultiValueControl/Properties/AssemblyInfo.cs b/DuoMultiValueControl/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8b3dc06 --- /dev/null +++ b/DuoMultiValueControl/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("DuoMultiValueControl")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DuoMultiValueControl")] +[assembly: AssemblyCopyright("Copyright © 2023 by Eugen Höglinger")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("65c7f0f6-b8ca-4c1d-9c68-ed98fc2d31a1")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +//[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DuoMultiValueControl/Properties/Resources.Designer.cs b/DuoMultiValueControl/Properties/Resources.Designer.cs new file mode 100644 index 0000000..18e0a39 --- /dev/null +++ b/DuoMultiValueControl/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace Eugen.ESystem.Windows.Forms.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Eugen.ESystem.Windows.Forms.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Pfeil_oben { + get { + object obj = ResourceManager.GetObject("Pfeil_oben", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Pfeil_unten { + get { + object obj = ResourceManager.GetObject("Pfeil_unten", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/DuoMultiValueControl/Properties/Resources.resx b/DuoMultiValueControl/Properties/Resources.resx new file mode 100644 index 0000000..b0fcd2c --- /dev/null +++ b/DuoMultiValueControl/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Pfeil_oben.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Pfeil_unten.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/DuoMultiValueControl/Resources/Pfeil_oben.png b/DuoMultiValueControl/Resources/Pfeil_oben.png new file mode 100644 index 0000000..b256203 Binary files /dev/null and b/DuoMultiValueControl/Resources/Pfeil_oben.png differ diff --git a/DuoMultiValueControl/Resources/Pfeil_unten.png b/DuoMultiValueControl/Resources/Pfeil_unten.png new file mode 100644 index 0000000..10ec1a8 Binary files /dev/null and b/DuoMultiValueControl/Resources/Pfeil_unten.png differ diff --git a/DuoMultiValueControl/Resources/Thumbs.db b/DuoMultiValueControl/Resources/Thumbs.db new file mode 100644 index 0000000..a69a897 Binary files /dev/null and b/DuoMultiValueControl/Resources/Thumbs.db differ diff --git a/DuoMultiValueControl/SaveXML.cs b/DuoMultiValueControl/SaveXML.cs new file mode 100644 index 0000000..ab4699d --- /dev/null +++ b/DuoMultiValueControl/SaveXML.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml; +using System.Xml.Linq; +using AppRes = Eugen.ESystem.Windows.Forms.Properties.AppResources; + + +namespace Eugen.ESystem.Windows.Forms +{ + internal class SaveXML + { + public string FileName { get; set; } + public string Topic = ""; //z.B. "NX-Portal" + public string Group { get; set; } //z.B. "NX 1953" + public string[] Keys { get; set; } //z.B. "UGII_ENV" + public string[] Values { get; set; } //z.B. "M:\ug\NX1953_NXTC\global\00_DEFAULTS\UGII\ugii_env.dat" + + public void Save() + { + //Namensraum definieren + XNamespace ns = "https://www.engelglobal.com/de/at/index.html"; + + //Wurzelelement erzeugen + XElement rootElement = new XElement(ns + Topic); + + //Namensraum als Attribut angeben + rootElement.Add(new XAttribute("xmlns", ns)); + + //Der Wert + for (int i = 0; i < Values.Length; i++) + { + XElement groupElement = new XElement(ns + Group.Replace(" ", "_")); + groupElement.Add(new XAttribute(Keys[i], Values[i])); + + rootElement.Add(groupElement); + } + + rootElement.Save(FileName); + + MessageBox.Show(AppRes.msgBoxTxt006, AppRes.msgBoxCapt004, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } +} diff --git a/DuoMultiValueControl/bin/Debug/de/hedmvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/de/hedmvalcon.resources.dll new file mode 100644 index 0000000..6af20f9 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/de/hedmvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/de/hemvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/de/hemvalcon.resources.dll new file mode 100644 index 0000000..59ab11b Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/de/hemvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/de/hesvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/de/hesvalcon.resources.dll new file mode 100644 index 0000000..2d51455 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/de/hesvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/en/hedmvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/en/hedmvalcon.resources.dll new file mode 100644 index 0000000..3447bc6 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/en/hedmvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/en/hemvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/en/hemvalcon.resources.dll new file mode 100644 index 0000000..d6aa59d Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/en/hemvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/en/hesvalcon.resources.dll b/DuoMultiValueControl/bin/Debug/en/hesvalcon.resources.dll new file mode 100644 index 0000000..d44f3c4 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/en/hesvalcon.resources.dll differ diff --git a/DuoMultiValueControl/bin/Debug/hecryption.dll b/DuoMultiValueControl/bin/Debug/hecryption.dll new file mode 100644 index 0000000..faed5dd Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hecryption.dll differ diff --git a/DuoMultiValueControl/bin/Debug/hecryption.pdb b/DuoMultiValueControl/bin/Debug/hecryption.pdb new file mode 100644 index 0000000..7f8d97f Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hecryption.pdb differ diff --git a/DuoMultiValueControl/bin/Debug/hedmvalcon.dll b/DuoMultiValueControl/bin/Debug/hedmvalcon.dll new file mode 100644 index 0000000..8dd7611 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hedmvalcon.dll differ diff --git a/DuoMultiValueControl/bin/Debug/hedmvalcon.pdb b/DuoMultiValueControl/bin/Debug/hedmvalcon.pdb new file mode 100644 index 0000000..8e131c2 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hedmvalcon.pdb differ diff --git a/DuoMultiValueControl/bin/Debug/hesvalcon.dll b/DuoMultiValueControl/bin/Debug/hesvalcon.dll new file mode 100644 index 0000000..48ccc78 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hesvalcon.dll differ diff --git a/DuoMultiValueControl/bin/Debug/hesvalcon.pdb b/DuoMultiValueControl/bin/Debug/hesvalcon.pdb new file mode 100644 index 0000000..5b599a0 Binary files /dev/null and b/DuoMultiValueControl/bin/Debug/hesvalcon.pdb differ diff --git a/DuoMultiValueControl/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/DuoMultiValueControl/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/DuoMultiValueControl/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..83e6107 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..eb465f4 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.AssemblyReference.cache b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.AssemblyReference.cache new file mode 100644 index 0000000..696fc5c Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.AssemblyReference.cache differ diff --git a/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.CopyComplete b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.CoreCompileInputs.cache b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..f91f386 --- /dev/null +++ b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +4716fdd361cd2452777470d9e602bb02288864a1 diff --git a/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.FileListAbsolute.txt b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..0087c47 --- /dev/null +++ b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.FileListAbsolute.txt @@ -0,0 +1,24 @@ +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hedmvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hedmvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\de\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\en\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hecryption.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hesvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hecryption.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\hesvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\de\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\bin\Debug\en\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\DuoMultiValueControl.csproj.AssemblyReference.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.DuoMultiValueControl.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.Properties.AppResources.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.Properties.Resources.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.Properties.AppResources.de.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.Properties.AppResources.en.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\Eugen.ESystem.Windows.Forms.DuoMultiValueControl.de.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\DuoMultiValueControl.csproj.GenerateResource.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\DuoMultiValueControl.csproj.CoreCompileInputs.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\de\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\en\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\DuoMultiValueControl.csproj.CopyComplete +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\hedmvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\DuoMultiValueControl\obj\Debug\hedmvalcon.pdb diff --git a/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.GenerateResource.cache b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.GenerateResource.cache new file mode 100644 index 0000000..464c452 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/DuoMultiValueControl.csproj.GenerateResource.cache differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.de.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.de.resources new file mode 100644 index 0000000..95a1fd7 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.de.resources differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.DuoMultiValueControl.resources differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.de.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.de.resources new file mode 100644 index 0000000..7fe68aa Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.de.resources differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.en.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.en.resources new file mode 100644 index 0000000..a77482f Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.en.resources differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.resources new file mode 100644 index 0000000..a77482f Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.AppResources.resources differ diff --git a/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.Resources.resources b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.Resources.resources new file mode 100644 index 0000000..583c69e Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/Eugen.ESystem.Windows.Forms.Properties.Resources.resources differ diff --git a/DuoMultiValueControl/obj/Debug/TempPE/Properties.AppResources.Designer.cs.dll b/DuoMultiValueControl/obj/Debug/TempPE/Properties.AppResources.Designer.cs.dll new file mode 100644 index 0000000..369fe8e Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/TempPE/Properties.AppResources.Designer.cs.dll differ diff --git a/DuoMultiValueControl/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/DuoMultiValueControl/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..27187a9 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/DuoMultiValueControl/obj/Debug/_IsIncrementalBuild b/DuoMultiValueControl/obj/Debug/_IsIncrementalBuild new file mode 100644 index 0000000..e5f828c --- /dev/null +++ b/DuoMultiValueControl/obj/Debug/_IsIncrementalBuild @@ -0,0 +1 @@ +obj\Debug\\_IsIncrementalBuild diff --git a/DuoMultiValueControl/obj/Debug/de/hedmvalcon.resources.dll b/DuoMultiValueControl/obj/Debug/de/hedmvalcon.resources.dll new file mode 100644 index 0000000..6af20f9 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/de/hedmvalcon.resources.dll differ diff --git a/DuoMultiValueControl/obj/Debug/en/hedmvalcon.resources.dll b/DuoMultiValueControl/obj/Debug/en/hedmvalcon.resources.dll new file mode 100644 index 0000000..3447bc6 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/en/hedmvalcon.resources.dll differ diff --git a/DuoMultiValueControl/obj/Debug/hedmvalcon.dll b/DuoMultiValueControl/obj/Debug/hedmvalcon.dll new file mode 100644 index 0000000..8dd7611 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/hedmvalcon.dll differ diff --git a/DuoMultiValueControl/obj/Debug/hedmvalcon.pdb b/DuoMultiValueControl/obj/Debug/hedmvalcon.pdb new file mode 100644 index 0000000..8e131c2 Binary files /dev/null and b/DuoMultiValueControl/obj/Debug/hedmvalcon.pdb differ diff --git a/HE-Test_Dll/App.config b/HE-Test_Dll/App.config new file mode 100644 index 0000000..d0f8440 --- /dev/null +++ b/HE-Test_Dll/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/HE-Test_Dll/Form1.Designer.cs b/HE-Test_Dll/Form1.Designer.cs new file mode 100644 index 0000000..1d06693 --- /dev/null +++ b/HE-Test_Dll/Form1.Designer.cs @@ -0,0 +1,134 @@ +namespace HE_Test_Dll1 +{ + partial class Form1 + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.groupBoxProgramInfo = new System.Windows.Forms.GroupBox(); + this.labelProgramInfo = new System.Windows.Forms.Label(); + this.groupBoxDLLInfo = new System.Windows.Forms.GroupBox(); + this.labelDLLInfo = new System.Windows.Forms.Label(); + this.duoMultiValueControl = new Eugen.ESystem.Windows.Forms.DuoMultiValueControl(); + this.groupBoxProgramInfo.SuspendLayout(); + this.groupBoxDLLInfo.SuspendLayout(); + this.SuspendLayout(); + // + // groupBoxProgramInfo + // + this.groupBoxProgramInfo.Controls.Add(this.labelProgramInfo); + this.groupBoxProgramInfo.Location = new System.Drawing.Point(12, 372); + this.groupBoxProgramInfo.Name = "groupBoxProgramInfo"; + this.groupBoxProgramInfo.Size = new System.Drawing.Size(385, 66); + this.groupBoxProgramInfo.TabIndex = 11; + this.groupBoxProgramInfo.TabStop = false; + this.groupBoxProgramInfo.Text = "Programm Information"; + // + // labelProgramInfo + // + this.labelProgramInfo.AutoSize = true; + this.labelProgramInfo.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelProgramInfo.Location = new System.Drawing.Point(7, 20); + this.labelProgramInfo.Name = "labelProgramInfo"; + this.labelProgramInfo.Size = new System.Drawing.Size(16, 13); + this.labelProgramInfo.TabIndex = 0; + this.labelProgramInfo.Text = "..."; + // + // groupBoxDLLInfo + // + this.groupBoxDLLInfo.Controls.Add(this.labelDLLInfo); + this.groupBoxDLLInfo.Location = new System.Drawing.Point(403, 372); + this.groupBoxDLLInfo.Name = "groupBoxDLLInfo"; + this.groupBoxDLLInfo.Size = new System.Drawing.Size(385, 66); + this.groupBoxDLLInfo.TabIndex = 12; + this.groupBoxDLLInfo.TabStop = false; + this.groupBoxDLLInfo.Text = "DLL Information"; + // + // labelDLLInfo + // + this.labelDLLInfo.AutoSize = true; + this.labelDLLInfo.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelDLLInfo.Location = new System.Drawing.Point(7, 20); + this.labelDLLInfo.Name = "labelDLLInfo"; + this.labelDLLInfo.Size = new System.Drawing.Size(16, 13); + this.labelDLLInfo.TabIndex = 0; + this.labelDLLInfo.Text = "..."; + // + // duoMultiValueControl + // + this.duoMultiValueControl.AlwaysEncrypted = false; + this.duoMultiValueControl.CheckBoxEncryptValueText = "Encrypt"; + this.duoMultiValueControl.Group1 = null; + this.duoMultiValueControl.Group2 = null; + this.duoMultiValueControl.GroupName1 = "Group1 1"; + this.duoMultiValueControl.GroupName2 = "Group1 2"; + this.duoMultiValueControl.Groups1 = null; + this.duoMultiValueControl.Groups2 = null; + this.duoMultiValueControl.InitialDirectory = "C:\\"; + this.duoMultiValueControl.Key = null; + this.duoMultiValueControl.Location = new System.Drawing.Point(13, 13); + this.duoMultiValueControl.MaximumSize = new System.Drawing.Size(800, 460); + this.duoMultiValueControl.MinimumSize = new System.Drawing.Size(316, 227); + this.duoMultiValueControl.Name = "duoMultiValueControl"; + this.duoMultiValueControl.Password = null; + this.duoMultiValueControl.Size = new System.Drawing.Size(316, 227); + this.duoMultiValueControl.TabIndex = 13; + this.duoMultiValueControl.TableKeyName = "Variable Name"; + this.duoMultiValueControl.TableValueName = "Variable Value"; + this.duoMultiValueControl.Topic = "Topic"; + this.duoMultiValueControl.ValueControlName = "Value control"; + this.duoMultiValueControl.XMLfileName = null; + this.duoMultiValueControl.XMLgroup1FileName = null; + this.duoMultiValueControl.XMLgroup2FileName = null; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.duoMultiValueControl); + this.Controls.Add(this.groupBoxProgramInfo); + this.Controls.Add(this.groupBoxDLLInfo); + this.Name = "Form1"; + this.Text = "Test_InfoBox"; + this.Load += new System.EventHandler(this.Form1_Load); + this.groupBoxProgramInfo.ResumeLayout(false); + this.groupBoxProgramInfo.PerformLayout(); + this.groupBoxDLLInfo.ResumeLayout(false); + this.groupBoxDLLInfo.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.GroupBox groupBoxProgramInfo; + private System.Windows.Forms.Label labelProgramInfo; + private System.Windows.Forms.GroupBox groupBoxDLLInfo; + private System.Windows.Forms.Label labelDLLInfo; + private Eugen.ESystem.Windows.Forms.DuoMultiValueControl duoMultiValueControl; + } +} + diff --git a/HE-Test_Dll/Form1.cs b/HE-Test_Dll/Form1.cs new file mode 100644 index 0000000..f7f49a3 --- /dev/null +++ b/HE-Test_Dll/Form1.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Eugen.ESystem.Windows.Forms; + +namespace HE_Test_Dll1 +{ + public partial class Form1 : Form + { + #region Version und Copyright + // Keys und Copyright + string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + string copyright = GenerateCopyright(); + string icon = Application.StartupPath + "\\Info.bmp"; + //Assembly Datum und Zeit + static DateTime value = AssemblyDateTime(); + string date = value.ToShortDateString(); + string time = value.ToLongTimeString(); + private static DateTime AssemblyDateTime() + { + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); + //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) + return buildDateTime; + } + + private static string CurrentYear() + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + + private static string StartYear() + { + //string startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + //return startYear.Remove(0, startYear.LastIndexOf(" ") + 1); + string startYear = ""; + if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) + { + startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); + while (startYear.StartsWith(" ")) + { + startYear = startYear.Remove(0, 1); + } + startYear = startYear.Remove(startYear.IndexOf(" ")); + return startYear; + } + else + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + } + + private static string GenerateCopyright() + { + string startYear = StartYear(); + string currentYear = CurrentYear(); + + if (startYear == currentYear) + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + else + { + //return String.Concat(((AssemblyCopyrightAttribute)attributes[0]).Copyright, "-", currentYear); + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace(startYear, String.Concat(startYear, "-", currentYear)); + } + } + #endregion + + #region Programm-Info + /// + /// Contains the name of the program file + /// + public static string ProgramName { set; get; } + + /// + /// Contains the version of the program file + /// + public static string ProgramVersion { set; get; } + + /// + /// Contains the copyright notice + /// + public static string Copyright { set; get; } + + private void SetProgramInfo() + { + //Name, Keys und Copyright setzen + ProgramName = programName; + ProgramVersion = programVersion; + Copyright = copyright; + } + #endregion + + public Form1() + { + SetProgramInfo(); + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + labelProgramInfo.Text = String.Concat(ProgramName, "\r\n", ProgramVersion, "\r\n", Copyright); // Zeigt die Programm-Information an + + labelDLLInfo.Text = String.Concat(DuoMultiValueControl.DllName, "\r\n", DuoMultiValueControl.DllVersion, "\r\n", DuoMultiValueControl.Copyright); // Zeigt die DLL-Information an + + ExecuteControl(); + } + + private void ExecuteControl() + { + duoMultiValueControl.Password = "Test"; + duoMultiValueControl.InitialDirectory = @"C:\Temp\Test"; + duoMultiValueControl.XMLfileName = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\Daten\NXenvironment.xml"; + //duoMultiValueControl.XMLgroup1FileName = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\SingleValueControl.git\Daten\Test1.xml"; + duoMultiValueControl.XMLgroup1FileName = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\Daten\NxVersions.xml"; + //duoMultiValueControl.XMLgroup2FileName = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\SingleValueControl.git\Daten\Test2.xml"; + duoMultiValueControl.XMLgroup2FileName = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\Daten\Group.xml"; + duoMultiValueControl.ValueControlName = "My XML Control"; + duoMultiValueControl.Topic = "NX-Portal"; + duoMultiValueControl.GroupName1 = "MyGroup1"; + duoMultiValueControl.GroupName2 = "MyGroup2"; + //duoMultiValueControl.Group1 = "NX_2212"; //Belegt die Gruppe vor. Darf kein Leerzeichen enthalten + //duoMultiValueControl.Group2 = "CAD"; //Belegt die Gruppe vor. Darf kein Leerzeichen enthalten + duoMultiValueControl.TableKeyName = "MyVarName"; + duoMultiValueControl.TableValueName = "MyValue"; + //duoMultiValueControl.AlwaysEncrypted = true; //Alle Werte werden immer Verschlüsselt + duoMultiValueControl.SetDialogWidth(600); //Der Dialog kann zwischen 316 und 800 breit sein + duoMultiValueControl.SetDialogHeight(300); //Der Dialog kann zwischen 227 und 460 hoch sein + duoMultiValueControl.SetBasicValues(); //Die übergebenen Werte anzeigen + + } + } +} diff --git a/HE-Test_Dll/Form1.resx b/HE-Test_Dll/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/HE-Test_Dll/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/HE-Test_Dll/HE-Test_DuoMultiValueControl.csproj b/HE-Test_Dll/HE-Test_DuoMultiValueControl.csproj new file mode 100644 index 0000000..3f0aecc --- /dev/null +++ b/HE-Test_Dll/HE-Test_DuoMultiValueControl.csproj @@ -0,0 +1,105 @@ + + + + + Debug + AnyCPU + {2B71D20F-009D-4089-8C69-98DCCFADF932} + WinExe + HE_Test_Dll1 + HE-Test_Dll + v4.7.2 + 512 + true + false + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + False + ..\..\..\_DLL\Cryption.git\Cryption\bin\Debug\hecryption.dll + + + ..\DuoMultiValueControl\bin\Debug\hedmvalcon.dll + + + False + ..\..\SingleValueControl.git\SingleValueControl\bin\Debug\hesvalcon.dll + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {65C7F0F6-B8CA-4C1D-9C68-ED98FC2D31A1} + SelectionDuoValueControl + + + + \ No newline at end of file diff --git a/HE-Test_Dll/Program.cs b/HE-Test_Dll/Program.cs new file mode 100644 index 0000000..da5f698 --- /dev/null +++ b/HE-Test_Dll/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace HE_Test_Dll1 +{ + internal static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/HE-Test_Dll/Properties/AssemblyInfo.cs b/HE-Test_Dll/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ff579f9 --- /dev/null +++ b/HE-Test_Dll/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("HE_Test_Dll")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HE_Test_Dll")] +[assembly: AssemblyCopyright("Copyright © 2022 by Eugen Höglinger")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("2b71d20f-009d-4089-8c69-98dccfadf932")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +//[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HE-Test_Dll/Properties/Resources.Designer.cs b/HE-Test_Dll/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7ffff91 --- /dev/null +++ b/HE-Test_Dll/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace HE_Test_Dll1.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HE_Test_Dll1.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/HE-Test_Dll/Properties/Resources.resx b/HE-Test_Dll/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/HE-Test_Dll/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/HE-Test_Dll/Properties/Settings.Designer.cs b/HE-Test_Dll/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e2b6fa7 --- /dev/null +++ b/HE-Test_Dll/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace HE_Test_Dll1.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.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; + } + } + } +} diff --git a/HE-Test_Dll/Properties/Settings.settings b/HE-Test_Dll/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/HE-Test_Dll/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe b/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe new file mode 100644 index 0000000..99b74e0 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe differ diff --git a/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe.config b/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe.config new file mode 100644 index 0000000..d0f8440 --- /dev/null +++ b/HE-Test_Dll/bin/Debug/HE-Test_Dll.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/HE-Test_Dll/bin/Debug/HE-Test_Dll.pdb b/HE-Test_Dll/bin/Debug/HE-Test_Dll.pdb new file mode 100644 index 0000000..1907bbd Binary files /dev/null and b/HE-Test_Dll/bin/Debug/HE-Test_Dll.pdb differ diff --git a/HE-Test_Dll/bin/Debug/de/hedmvalcon.resources.dll b/HE-Test_Dll/bin/Debug/de/hedmvalcon.resources.dll new file mode 100644 index 0000000..4ad021b Binary files /dev/null and b/HE-Test_Dll/bin/Debug/de/hedmvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/de/hemvalcon.resources.dll b/HE-Test_Dll/bin/Debug/de/hemvalcon.resources.dll new file mode 100644 index 0000000..59ab11b Binary files /dev/null and b/HE-Test_Dll/bin/Debug/de/hemvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/de/hesvalcon.resources.dll b/HE-Test_Dll/bin/Debug/de/hesvalcon.resources.dll new file mode 100644 index 0000000..2d51455 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/de/hesvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/en/hedmvalcon.resources.dll b/HE-Test_Dll/bin/Debug/en/hedmvalcon.resources.dll new file mode 100644 index 0000000..bb89141 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/en/hedmvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/en/hemvalcon.resources.dll b/HE-Test_Dll/bin/Debug/en/hemvalcon.resources.dll new file mode 100644 index 0000000..d6aa59d Binary files /dev/null and b/HE-Test_Dll/bin/Debug/en/hemvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/en/hesvalcon.resources.dll b/HE-Test_Dll/bin/Debug/en/hesvalcon.resources.dll new file mode 100644 index 0000000..d44f3c4 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/en/hesvalcon.resources.dll differ diff --git a/HE-Test_Dll/bin/Debug/hecryption.dll b/HE-Test_Dll/bin/Debug/hecryption.dll new file mode 100644 index 0000000..faed5dd Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hecryption.dll differ diff --git a/HE-Test_Dll/bin/Debug/hecryption.pdb b/HE-Test_Dll/bin/Debug/hecryption.pdb new file mode 100644 index 0000000..7f8d97f Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hecryption.pdb differ diff --git a/HE-Test_Dll/bin/Debug/hedmvalcon.dll b/HE-Test_Dll/bin/Debug/hedmvalcon.dll new file mode 100644 index 0000000..65da5a6 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hedmvalcon.dll differ diff --git a/HE-Test_Dll/bin/Debug/hedmvalcon.pdb b/HE-Test_Dll/bin/Debug/hedmvalcon.pdb new file mode 100644 index 0000000..6d7ef7f Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hedmvalcon.pdb differ diff --git a/HE-Test_Dll/bin/Debug/hemvalcon.dll b/HE-Test_Dll/bin/Debug/hemvalcon.dll new file mode 100644 index 0000000..f1a9a6d Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hemvalcon.dll differ diff --git a/HE-Test_Dll/bin/Debug/hemvalcon.pdb b/HE-Test_Dll/bin/Debug/hemvalcon.pdb new file mode 100644 index 0000000..4ca9069 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hemvalcon.pdb differ diff --git a/HE-Test_Dll/bin/Debug/hesvalcon.dll b/HE-Test_Dll/bin/Debug/hesvalcon.dll new file mode 100644 index 0000000..48ccc78 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hesvalcon.dll differ diff --git a/HE-Test_Dll/bin/Debug/hesvalcon.pdb b/HE-Test_Dll/bin/Debug/hesvalcon.pdb new file mode 100644 index 0000000..5b599a0 Binary files /dev/null and b/HE-Test_Dll/bin/Debug/hesvalcon.pdb differ diff --git a/HE-Test_Dll/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/HE-Test_Dll/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/HE-Test_Dll/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..99498eb Binary files /dev/null and b/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..15f847f Binary files /dev/null and b/HE-Test_Dll/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_Dll.exe b/HE-Test_Dll/obj/Debug/HE-Test_Dll.exe new file mode 100644 index 0000000..99b74e0 Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_Dll.exe differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_Dll.pdb b/HE-Test_Dll/obj/Debug/HE-Test_Dll.pdb new file mode 100644 index 0000000..1907bbd Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_Dll.pdb differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.AssemblyReference.cache b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.AssemblyReference.cache new file mode 100644 index 0000000..36cede0 Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.AssemblyReference.cache differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.CopyComplete b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.CoreCompileInputs.cache b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..0dc98cc --- /dev/null +++ b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +ff6025d367b04c937fa8ccfeb13b3b3f5500ae3d diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.FileListAbsolute.txt b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..e872af5 --- /dev/null +++ b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.FileListAbsolute.txt @@ -0,0 +1,22 @@ +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_DuoMultiValueControl.csproj.AssemblyReference.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_DuoMultiValueControl.csproj.SuggestedBindingRedirects.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE_Test_Dll1.Form1.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE_Test_Dll1.Properties.Resources.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_DuoMultiValueControl.csproj.GenerateResource.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_DuoMultiValueControl.csproj.CoreCompileInputs.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_Dll.exe +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_Dll.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.exe.config +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.exe +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hecryption.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hedmvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hesvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hedmvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hecryption.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\hesvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\de\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\en\hedmvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\de\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\bin\Debug\en\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\DuoMultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_DuoMultiValueControl.csproj.CopyComplete diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.GenerateResource.cache b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.GenerateResource.cache new file mode 100644 index 0000000..ab08f2e Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.GenerateResource.cache differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.SuggestedBindingRedirects.cache b/HE-Test_Dll/obj/Debug/HE-Test_DuoMultiValueControl.csproj.SuggestedBindingRedirects.cache new file mode 100644 index 0000000..e69de29 diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.AssemblyReference.cache b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.AssemblyReference.cache new file mode 100644 index 0000000..c9398a9 Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.AssemblyReference.cache differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.CopyComplete b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.CoreCompileInputs.cache b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..fc48cb1 --- /dev/null +++ b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +d869c3ddd6177843c9c198c0dc2a715c28c5bb55 diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.FileListAbsolute.txt b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..fb02802 --- /dev/null +++ b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.FileListAbsolute.txt @@ -0,0 +1,22 @@ +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.exe.config +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.exe +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\HE-Test_Dll.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hecryption.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hemvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hesvalcon.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hemvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hecryption.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\hesvalcon.pdb +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\de\hemvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\en\hemvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\de\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\bin\Debug\en\hesvalcon.resources.dll +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_MultiValueControl.csproj.AssemblyReference.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_MultiValueControl.csproj.SuggestedBindingRedirects.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE_Test_Dll1.Form1.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE_Test_Dll1.Properties.Resources.resources +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_MultiValueControl.csproj.GenerateResource.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_MultiValueControl.csproj.CoreCompileInputs.cache +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_MultiValueControl.csproj.CopyComplete +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_Dll.exe +H:\Programmieren\Git-WorkRepository\VisualStudio\_USER CONTROL\MultiValueControl.git\HE-Test_Dll\obj\Debug\HE-Test_Dll.pdb diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.GenerateResource.cache b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.GenerateResource.cache new file mode 100644 index 0000000..19c27eb Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.GenerateResource.cache differ diff --git a/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.SuggestedBindingRedirects.cache b/HE-Test_Dll/obj/Debug/HE-Test_MultiValueControl.csproj.SuggestedBindingRedirects.cache new file mode 100644 index 0000000..e69de29 diff --git a/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Form1.resources b/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Form1.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Form1.resources differ diff --git a/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Properties.Resources.resources b/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Properties.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/HE-Test_Dll/obj/Debug/HE_Test_Dll1.Properties.Resources.resources differ diff --git a/HE-Test_Dll/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/HE-Test_Dll/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..0a8386f Binary files /dev/null and b/HE-Test_Dll/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/HE-Test_Dll/obj/Debug/_IsIncrementalBuild b/HE-Test_Dll/obj/Debug/_IsIncrementalBuild new file mode 100644 index 0000000..e5f828c --- /dev/null +++ b/HE-Test_Dll/obj/Debug/_IsIncrementalBuild @@ -0,0 +1 @@ +obj\Debug\\_IsIncrementalBuild