Anpassung

- So geändert, dass das Event funktioniert
This commit is contained in:
Eugen Höglinger 2023-04-14 13:53:19 +02:00
parent 8fcff02d51
commit 7069e379b8
106 changed files with 357 additions and 805 deletions

Binary file not shown.

View File

@ -1,488 +0,0 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Configuration;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using Eugen.ESystem.IO;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
using static Eugen.ESystem.IO.LoadXMLFile;
using AppRes = Eugen.ESystem.Properties.AppResources;
namespace Eugen.ESystem
{
public class DynamicMenuItems
{
#region Version und Copyright
// Version und Copyright
static string dllName = 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();
//Assembly Datum und Zeit
static DateTime value = AssemblyDateTime();
static string date = value.ToShortDateString();
static 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);
}
if (startYear.Contains("-"))
{
startYear = startYear.Remove(startYear.IndexOf("-"));
}
else
{
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
{
string temp = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
string start = temp.Remove(temp.IndexOf(startYear) - 1);
string end = (temp.Remove(0, temp.IndexOf(" by")));
return String.Concat(start, " ", startYear, "-", currentYear, end);
}
}
#endregion
#region DLL-Info
/// <summary>
/// Contains the name of the dll file.
/// </summary>
public static string DllName { private set; get; }
/// <summary>
/// Contains the version of the dll file.
/// </summary>
public static string DllVersion { private set; get; }
/// <summary>
/// Contains the copyright notice.
/// </summary>
public static string Copyright { private set; get; }
/// <summary>
/// Contains the name-, version- and copyright-information of the dll file.
/// </summary>
public static string[] DllInfo { private set; get; }
private static void SetDllInfo()
{
//Name, Version und Copyright setzen
DllName = dllName;
DllVersion = dllVersion;
Copyright = copyright;
string[] dllInfo = new string[3];
dllInfo[0] = dllName;
dllInfo[1] = dllVersion;
dllInfo[2] = copyright;
DllInfo = dllInfo;
}
protected string ProgramName { private set; get; }
protected string ProgramVersion { private set; get; }
protected string ProgramCopyright { private set; get; }
#endregion
static DynamicMenuItems()
{
SetDllInfo();
}
public DynamicMenuItems()
{
SetDllInfo();
}
/// <summary>
/// Log file name
/// </summary>
public static string LogFile { get; set; }
/// <summary>
/// Name of the roaming file
/// </summary>
public static string FileNameRoaming { get; set; }
/// <summary>
/// Password for encryption
/// </summary>
public string Password { get; set; }
/// <summary>
/// File name of the configuration
/// </summary>
public string XmlFile { get; set; }
/// <summary>
/// The XML topic
/// </summary>
public string Topic { get; set; }
/// <summary>
/// The XML group
/// </summary>
public string Group { get; set; }
/// <summary>
/// The XML key
/// </summary>
public string Key { get; set; }
/// <summary>
/// The values stored in the XML file
/// </summary>
public string[,] Values { get; set; }
/// <summary>
/// List of menu entries to be created
/// </summary>
public string[] MenuItems { get; set; }
/// <summary>
/// The selected menu item
/// </summary>
public string Standard { get; set; }
/// <summary>
/// Menu into which the submenus are inserted
/// </summary>
public ToolStripMenuItem Menu { get; set; }
/// <summary>
/// The backcolor of a menu entry
/// </summary>
public Color BackColor { get; set; }
/// <summary>
/// The forcolor of a menu entry
/// </summary>
public Color ForeColor { get; set; }
//Logfile global setzen
LogWriter log = new LogWriter(Path.GetDirectoryName(LogFile), Path.GetFileName(LogFile));
/// <summary>
/// Insert a menu item
/// </summary>
/// <param name="menuItem">Name of the Menu item</param>
public void AddMenuItem(string menuItem)
{
ToolStripMenuItem menu = (ToolStripMenuItem)(Menu);
Menu.DropDownItems.Add(menuItem, null, new EventHandler(ToolStripMenuItem_Click));
//Wenn BackColor und ForeColor einen Wert enthalten, dann das Menü einfärben
if (BackColor != null & ForeColor != null)
{
foreach (ToolStripMenuItem item in menu.DropDownItems)
{
item.BackColor = BackColor;
item.ForeColor = ForeColor;
}
}
if (File.Exists(LogFile))
{
log.WriteMessage("License value menu entry \'" + menuItem + "\' generated", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
/// <summary>
/// Insert menu entry from a list that is in an XML file
/// </summary>
public void AddMenuItemsFromXML()
{
if (File.Exists(LogFile))
{
log.WriteMessage("Creating dynamic license bundles menu entries ...", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
LoadXmlFile(XmlFile, Topic, Group, Key); //Information aus der XML-Datei auslesen
ExtractMenuItem(); //Die Menueinträge aus den XML-Daten ermitteln
ExtractStandardItem(); //Das Standard Item ermitteln
AddMenuItems(MenuItems); //Item zum Menü hinzufügen
CheckMenuItem(Standard); //Standard Menü Item auswählen
if (File.Exists(LogFile))
{
log.WriteMessage("Dynamic license bundles menu entries created successfully", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
/// <summary>
/// Insert menu entry from a list
/// </summary>
/// <param name="menuList">List of menu items</param>
public void AddMenuItems(string[] menuList)
{
//Menueinträge erzeugen
if (File.Exists(LogFile))
{
log.WriteMessage("Generating menu entries ...", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
//Zuerst alle angelegten Menüeinträge löschen
RemoveAllMenuItems();
//Für jedes Element in der Liste einen Menüpunkt anlegen
foreach (var element in menuList)
{
AddMenuItem(element);
}
if (File.Exists(LogFile))
{
log.WriteMessage("All menu entries are generated successfully", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
/// <summary>
/// Check a menu item
/// </summary>
/// <param name="selectedItem">Item name</param>
public void CheckMenuItem(string selectedItem)
{
//Hier soll der Menüeintrag, der dem Übergebenen Wert entspricht, auf 'Checked = true' gesetzt werden
foreach (ToolStripMenuItem item in Menu.DropDownItems)
{
if (item.Text == selectedItem)
{
item.Checked = true;
if (File.Exists(LogFile))
{
log.WriteMessage("The menu item \'" + item.Text + "\' was selected", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
else
{
item.Checked = false;
}
}
}
/// <summary>
/// Removes a menu item
/// </summary>
/// <param name="item">Item name</param>
public void RemoveMenuItem(string item)
{
ToolStripMenuItem menu = (ToolStripMenuItem)(Menu);
foreach (ToolStripMenuItem xitem in menu.DropDownItems)
{
if (xitem.ToString() == item)
{
menu.DropDownItems.Remove(xitem); //Den Menüeinträge löschen
if (File.Exists(LogFile))
{
log.WriteMessage("Remove menu entrie" + item, LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
return;
}
}
}
/// <summary>
/// Removes the menu items specified in a list
/// </summary>
/// <param name="itemList">Item list</param>
public void RemoveMenuItems(string[] itemList)
{
foreach (string item in itemList)
{
RemoveMenuItem(item);
}
}
/// <summary>
/// Removes all menu items
/// </summary>
public void RemoveAllMenuItems()
{
ToolStripMenuItem menu = (ToolStripMenuItem)(Menu);
menu.DropDownItems.Clear(); //Alle angelegten Menüeinträge löschen
if (File.Exists(LogFile))
{
log.WriteMessage("Removed all menu entries", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
/// <summary>
/// Returns a list of all submenus
/// </summary>
/// <returns>Item list</returns>
public string[] GetSubMenuItems()
{
ToolStripMenuItem menu = (ToolStripMenuItem)(Menu);
string[] items = new string[menu.DropDownItems.Count];
for (int i = 0; i < menu.DropDownItems.Count; i++)
{
items[i] = menu.DropDownItems[i].ToString();
}
return items;
}
/// <summary>
/// Saves a license value to the roaming area
/// </summary>
/// <param name="value">A valid string</param>
/// <exception cref="UnableToSaveLicenseBundleException">Unable to save license value</exception>
public void SaveValueToRoaming(string value, string key)
{
string password = Environment.GetEnvironmentVariable("USERNAME");
var cryption = new Cryption();
try
{
var roaming = new Roaming();
roaming.MainKey = "NX-Portal";
roaming.Key = key;
roaming.Value = cryption.EncryptString(value, password);
roaming.WriteKey();
}
catch (Exception)
{
throw new UnableToSaveLicenseBundleException();
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem MenuItem = (ToolStripMenuItem)sender;
//SelectedItem = MenuItem.Text;
Standard = MenuItem.Text;
CheckMenuItem(MenuItem.Text);
//License Bundle ins Roaming schreiben
if (!String.IsNullOrEmpty(FileNameRoaming))
{
SaveValueToRoaming(MenuItem.Text, FileNameRoaming); //In Roaming speichern
log.WriteMessage("The license value was saved to roaming", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
}
private void LoadXmlFile(string xmlFileName, string topic, string group, string key)
{
if (File.Exists(LogFile))
{
log.WriteMessage("Load menu items from XML-file", LogWriter.LogLevel.Information, LogWriter.Time.Write); //Logdatei schreiben
}
var loadXmlFile = new LoadXMLFile();
//LoadXML.Password = password;
loadXmlFile.FileName = xmlFileName;
loadXmlFile.Topic = topic;
loadXmlFile.Group = group;
loadXmlFile.Key = key;
loadXmlFile.LoadAllValues = LoadAll.Yes;
//XML laden
if (File.Exists(xmlFileName))
{
loadXmlFile.Load();
Values = loadXmlFile.Values;
}
else
{
//Datei nicht gefunden
MessageBox.Show(AppRes.msg001, AppRes.capt001, MessageBoxButtons.OK);
}
}
private void ExtractMenuItem()
{
string[] menuItems = new string[Values.Length / 5];
for (int i = 0; i < Values.Length / 5; i++)
{
menuItems[i] = Values[i, 3].ToString();
}
MenuItems = menuItems;
}
private void ExtractStandardItem()
{
for (int i = 0; i < Values.Length / 5; i++)
{
if (Values[i, 4].ToString() == "yes")
{
Standard = Values[i, 3].ToString();
}
}
}
}
#region Exceptions
class UnableToSaveLicenseBundleException : ApplicationException
{
public UnableToSaveLicenseBundleException()
{ }
public UnableToSaveLicenseBundleException(string message) : base(message)
{ }
public UnableToSaveLicenseBundleException(string message, Exception inner) : base(message, inner)
{ }
}
#endregion
}

View File

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

View File

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

View File

@ -1 +0,0 @@
32b1ba0bfbae947ce449f27cb464c37775844145

View File

@ -1,26 +0,0 @@
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\DynamicMenuItems.csproj.AssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.de.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.en.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\DynamicMenuItems.csproj.GenerateResource.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\DynamicMenuItems.csproj.CoreCompileInputs.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\hedynmeit.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\hedynmeit.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\de\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\en\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\helogwri.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heloxmlf.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heshowtf.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\helogwri.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heloxmlf.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heloxmlf.dll.config
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heshowtf.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\de\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\en\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\DynamicMenuItems.csproj.CopyComplete
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\hedynmeit.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\obj\Debug\hedynmeit.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\hecryption.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heroaming.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\hecryption.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\DynamicMenuItems\bin\Debug\heroaming.pdb

View File

@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33516.290
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicMenuItems", "DynamicMenuItems\DynamicMenuItems.csproj", "{842446DA-7C9E-43E1-BAA9-C0011365A5F4}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_DynamicMenuItems", "Test_DynamicMenuItems\Test_DynamicMenuItems.csproj", "{842446DA-7C9E-43E1-BAA9-C0011365A5F4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_DynamicMenuItems", "Test_DynamicMenuItems\Test_DynamicMenuItems.csproj", "{E59ADF75-279A-46BE-AE8C-67F4FDFCF3BF}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_TDynamicMenuItems", "Test_TDynamicMenuItems\Test_TDynamicMenuItems.csproj", "{E59ADF75-279A-46BE-AE8C-67F4FDFCF3BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -0,0 +1,234 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Configuration;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Remoting.Messaging;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
using AppRes = Eugen.ESystem.Properties.AppResources;
namespace Eugen.ESystem
{
public class DynamicMenuItems
{
#region Version und Copyright
// Version und Copyright
static string dllName = 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();
//Assembly Datum und Zeit
static DateTime value = AssemblyDateTime();
static string date = value.ToShortDateString();
static 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);
}
if (startYear.Contains("-"))
{
startYear = startYear.Remove(startYear.IndexOf("-"));
}
else
{
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
{
string temp = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
string start = temp.Remove(temp.IndexOf(startYear) - 1);
string end = (temp.Remove(0, temp.IndexOf(" by")));
return String.Concat(start, " ", startYear, "-", currentYear, end);
}
}
#endregion
#region DLL-Info
/// <summary>
/// Contains the name of the dll file.
/// </summary>
public static string DllName { private set; get; }
/// <summary>
/// Contains the version of the dll file.
/// </summary>
public static string DllVersion { private set; get; }
/// <summary>
/// Contains the copyright notice.
/// </summary>
public static string Copyright { private set; get; }
/// <summary>
/// Contains the name-, version- and copyright-information of the dll file.
/// </summary>
public static string[] DllInfo { private set; get; }
private static void SetDllInfo()
{
//Name, Version und Copyright setzen
DllName = dllName;
DllVersion = dllVersion;
Copyright = copyright;
string[] dllInfo = new string[3];
dllInfo[0] = dllName;
dllInfo[1] = dllVersion;
dllInfo[2] = copyright;
DllInfo = dllInfo;
}
protected string ProgramName { private set; get; }
protected string ProgramVersion { private set; get; }
protected string ProgramCopyright { private set; get; }
#endregion
static DynamicMenuItems()
{
SetDllInfo();
}
public DynamicMenuItems()
{
SetDllInfo();
}
/// <summary>
/// List of menu entries to be created
/// </summary>
public string[] MenuItems { get; set; }
/// <summary>
/// Menu into which the submenus are inserted
/// </summary>
public ToolStripMenuItem Menu { get; set; }
/// <summary>
/// Insert a menu item
/// </summary>
/// <param name="menuItem">Name of the Menu item</param>
public void AddMenuItem(string menuItem)
{
ToolStripMenuItem menu = (ToolStripMenuItem)(Menu);
Menu.DropDownItems.Add(menuItem, null, new EventHandler(ToolStripMenuItem_Click));
}
/// <summary>
/// Insert menu entry from a list
/// </summary>
/// <param name="menuList">List of menu items</param>
public void AddMenuItems(string[] menuList)
{
//Für jedes Element in der Liste einen Menüpunkt anlegen
foreach (var element in menuList)
{
AddMenuItem(element);
}
}
/// <summary>
/// Check a menu item
/// </summary>
/// <param name="selectedItem">Item name</param>
public void CheckMenuItem(string selectedItem)
{
//Hier soll der Menüeintrag, der dem Übergebenen Wert entspricht, auf 'Checked = true' gesetzt werden
foreach (ToolStripMenuItem item in Menu.DropDownItems)
{
if (item.Text == selectedItem)
{
item.Checked = true;
}
else
{
item.Checked = false;
}
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem MenuItem = (ToolStripMenuItem)sender;
CheckMenuItem(MenuItem.Text); //Menu auswählen
OnMyEvent(EventArgs.Empty); //Das eigene Event aufrufen
}
public event EventHandler MyEvent; //Ein eigens Event erstellen
//Eventhandler
protected virtual void OnMyEvent(EventArgs e)
{
EventHandler myEvent = MyEvent;
if (myEvent != null)
{
myEvent(this, e);
}
}
}
#region Exceptions
class UnableToSaveLicenseBundleException : ApplicationException
{
public UnableToSaveLicenseBundleException()
{ }
public UnableToSaveLicenseBundleException(string message) : base(message)
{ }
public UnableToSaveLicenseBundleException(string message, Exception inner) : base(message, inner)
{ }
}
#endregion
}

View File

@ -5,12 +5,12 @@ 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("Test_DynamicMenuItems")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyTitle("DynamicMenuItems")]
[assembly: AssemblyDescription("Generates menu items at runtime")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Test_DynamicMenuItems")]
[assembly: AssemblyCopyright("Copyright © 2022 by Eugen Höglinger")]
[assembly: AssemblyCopyright("Copyright © 2023 by Eugen Höglinger")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("e59adf75-279a-46be-ae8c-67f4fdfcf3bf")]
[assembly: Guid("842446da-7c9e-43e1-baa9-c0011365a5f4")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
@ -30,7 +30,7 @@ using System.Runtime.InteropServices;
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// übernehmen, indem Sie "*" eingeben:
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")] //Wenn auskommentiert, dann gleich wie AssemblyVersion!

View File

@ -4,18 +4,17 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E59ADF75-279A-46BE-AE8C-67F4FDFCF3BF}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Test_DynamicMenuItems</RootNamespace>
<AssemblyName>Test_DynamicMenuItems</AssemblyName>
<ProjectGuid>{842446DA-7C9E-43E1-BAA9-C0011365A5F4}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Eugen.ESystem</RootNamespace>
<AssemblyName>thedynmeit</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>false</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@ -25,7 +24,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
@ -34,55 +32,33 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="hedynmeit">
<HintPath>..\DynamicMenuItems\bin\Debug\hedynmeit.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<Compile Include="DynamicMenuItems.cs" />
<Compile Include="Properties\AppResources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<DependentUpon>AppResources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<EmbeddedResource Include="Properties\AppResources.de.resx" />
<EmbeddedResource Include="Properties\AppResources.en.resx" />
<EmbeddedResource Include="Properties\AppResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AppResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

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

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

View File

@ -1 +1 @@
9ce7caedfe88add715da5b5d30e1dfa8b953e367
cc5ec853d1c010ae0ab13f8172545ede7080de14

View File

@ -1,25 +1,14 @@
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.AssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.SuggestedBindingRedirects.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.Form1.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.Properties.Resources.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.GenerateResource.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.CoreCompileInputs.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\Test_DynamicMenuItems.exe.config
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\Test_DynamicMenuItems.exe
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\Test_DynamicMenuItems.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\helogwri.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\heloxmlf.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\hedynmeit.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\helogwri.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\heloxmlf.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\heloxmlf.dll.config
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\de\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\en\hedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.CopyComplete
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.exe
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\hedynmeit.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\hecryption.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\heroaming.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\hecryption.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\heroaming.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\thedynmeit.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\thedynmeit.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\de\thedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\bin\Debug\en\thedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.AssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.de.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Eugen.ESystem.Properties.AppResources.en.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.GenerateResource.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\Test_DynamicMenuItems.csproj.CoreCompileInputs.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\de\thedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\en\thedynmeit.resources.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\thedynmeit.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_TEST\Test_DynamicMenuItems.git\Test_DynamicMenuItems\obj\Debug\thedynmeit.pdb

Binary file not shown.

Binary file not shown.

View File

@ -37,11 +37,6 @@
this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.subtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.buttonAddmenuItems = new System.Windows.Forms.Button();
this.buttonAddMenuItem = new System.Windows.Forms.Button();
this.buttonRemoveItem = new System.Windows.Forms.Button();
this.buttonRemoveItems = new System.Windows.Forms.Button();
this.buttonRemoveAllMenuItems = new System.Windows.Forms.Button();
this.labelResult = new System.Windows.Forms.Label();
this.groupBoxProgramInfo.SuspendLayout();
this.groupBoxDLLInfo.SuspendLayout();
this.menuStrip1.SuspendLayout();
@ -49,13 +44,10 @@
//
// buttonAddMenuItemsFromXML
//
this.buttonAddMenuItemsFromXML.Location = new System.Drawing.Point(12, 287);
this.buttonAddMenuItemsFromXML.Location = new System.Drawing.Point(0, 0);
this.buttonAddMenuItemsFromXML.Name = "buttonAddMenuItemsFromXML";
this.buttonAddMenuItemsFromXML.Size = new System.Drawing.Size(385, 23);
this.buttonAddMenuItemsFromXML.Size = new System.Drawing.Size(75, 23);
this.buttonAddMenuItemsFromXML.TabIndex = 0;
this.buttonAddMenuItemsFromXML.Text = "Add menu items from a XML file";
this.buttonAddMenuItemsFromXML.UseVisualStyleBackColor = true;
this.buttonAddMenuItemsFromXML.Click += new System.EventHandler(this.buttonAddMenuItemsFromXML_Click);
//
// groupBoxProgramInfo
//
@ -118,83 +110,27 @@
// subtestToolStripMenuItem
//
this.subtestToolStripMenuItem.Name = "subtestToolStripMenuItem";
this.subtestToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.subtestToolStripMenuItem.Size = new System.Drawing.Size(113, 22);
this.subtestToolStripMenuItem.Text = "Subtest";
//
// buttonAddmenuItems
//
this.buttonAddmenuItems.Location = new System.Drawing.Point(12, 258);
this.buttonAddmenuItems.Name = "buttonAddmenuItems";
this.buttonAddmenuItems.Size = new System.Drawing.Size(385, 23);
this.buttonAddmenuItems.Size = new System.Drawing.Size(776, 23);
this.buttonAddmenuItems.TabIndex = 14;
this.buttonAddmenuItems.Text = "Add menu items from a list";
this.buttonAddmenuItems.UseVisualStyleBackColor = true;
this.buttonAddmenuItems.Click += new System.EventHandler(this.buttonAddmenuItems_Click);
//
// buttonAddMenuItem
//
this.buttonAddMenuItem.Location = new System.Drawing.Point(12, 229);
this.buttonAddMenuItem.Name = "buttonAddMenuItem";
this.buttonAddMenuItem.Size = new System.Drawing.Size(385, 23);
this.buttonAddMenuItem.TabIndex = 15;
this.buttonAddMenuItem.Text = "Add a single menu item";
this.buttonAddMenuItem.UseVisualStyleBackColor = true;
this.buttonAddMenuItem.Click += new System.EventHandler(this.buttonAddMenuItem_Click);
//
// buttonRemoveItem
//
this.buttonRemoveItem.Location = new System.Drawing.Point(403, 228);
this.buttonRemoveItem.Name = "buttonRemoveItem";
this.buttonRemoveItem.Size = new System.Drawing.Size(385, 23);
this.buttonRemoveItem.TabIndex = 16;
this.buttonRemoveItem.Text = "Remove a single menu item";
this.buttonRemoveItem.UseVisualStyleBackColor = true;
this.buttonRemoveItem.Click += new System.EventHandler(this.buttonRemoveItem_Click);
//
// buttonRemoveItems
//
this.buttonRemoveItems.Location = new System.Drawing.Point(404, 257);
this.buttonRemoveItems.Name = "buttonRemoveItems";
this.buttonRemoveItems.Size = new System.Drawing.Size(384, 23);
this.buttonRemoveItems.TabIndex = 17;
this.buttonRemoveItems.Text = "Remove menu items from a list";
this.buttonRemoveItems.UseVisualStyleBackColor = true;
this.buttonRemoveItems.Click += new System.EventHandler(this.buttonRemoveItems_Click);
//
// buttonRemoveAllMenuItems
//
this.buttonRemoveAllMenuItems.Location = new System.Drawing.Point(404, 286);
this.buttonRemoveAllMenuItems.Name = "buttonRemoveAllMenuItems";
this.buttonRemoveAllMenuItems.Size = new System.Drawing.Size(384, 23);
this.buttonRemoveAllMenuItems.TabIndex = 18;
this.buttonRemoveAllMenuItems.Text = "Remove all menu items";
this.buttonRemoveAllMenuItems.UseVisualStyleBackColor = true;
this.buttonRemoveAllMenuItems.Click += new System.EventHandler(this.buttonRemoveAllMenuItems_Click);
//
// labelResult
//
this.labelResult.AutoSize = true;
this.labelResult.Location = new System.Drawing.Point(12, 28);
this.labelResult.Name = "labelResult";
this.labelResult.Size = new System.Drawing.Size(16, 13);
this.labelResult.TabIndex = 19;
this.labelResult.Text = "...";
this.labelResult.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// 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.labelResult);
this.Controls.Add(this.buttonRemoveAllMenuItems);
this.Controls.Add(this.buttonRemoveItems);
this.Controls.Add(this.buttonRemoveItem);
this.Controls.Add(this.buttonAddMenuItem);
this.Controls.Add(this.buttonAddmenuItems);
this.Controls.Add(this.groupBoxProgramInfo);
this.Controls.Add(this.groupBoxDLLInfo);
this.Controls.Add(this.buttonAddMenuItemsFromXML);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Name = "Form1";
@ -222,11 +158,6 @@
private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem subtestToolStripMenuItem;
private System.Windows.Forms.Button buttonAddmenuItems;
private System.Windows.Forms.Button buttonAddMenuItem;
private System.Windows.Forms.Button buttonRemoveItem;
private System.Windows.Forms.Button buttonRemoveItems;
private System.Windows.Forms.Button buttonRemoveAllMenuItems;
private System.Windows.Forms.Label labelResult;
}
}

View File

@ -11,6 +11,8 @@ using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using static System.Net.Mime.MediaTypeNames;
namespace Test_DynamicMenuItems
{
@ -22,7 +24,7 @@ namespace Test_DynamicMenuItems
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";
string icon = System.Windows.Forms.Application.StartupPath + "\\Info.bmp";
//Assembly Datum und Zeit
static DateTime value = AssemblyDateTime();
string date = value.ToShortDateString();
@ -111,104 +113,33 @@ namespace Test_DynamicMenuItems
InitializeComponent();
}
DynamicMenuItems myObject = new DynamicMenuItems(); //Event deklarieren
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(DynamicMenuItems.DllName, "\r\n", DynamicMenuItems.DllVersion, "\r\n", DynamicMenuItems.Copyright); // Zeigt die DLL-Information an
}
private void buttonAddMenuItem_Click(object sender, EventArgs e)
{
DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
var dmi = new DynamicMenuItems();
dmi.Password = "abc";
dmi.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml";
dmi.Topic = "NX-Portal";
dmi.Group = "Bundle";
dmi.Key = "License";
dmi.Menu = subtestToolStripMenuItem;
//dmi.BackColor = Color.FromArgb(60, 60, 60);
//dmi.ForeColor = SystemColors.ControlDark;
dmi.AddMenuItem("NX91110"); //Einen Menüeintrag erzeugen
myObject.MyEvent += myObject_MyEvent; //Event abonnieren
}
private void buttonAddmenuItems_Click(object sender, EventArgs e)
{
DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
string[] items = { "SubMenu 1", "SubMenu 2", "SubMenu 3" }; //Diese Untermenüpunkte sollen erzeugt werden
var dmi = new DynamicMenuItems();
myObject.Menu = subtestToolStripMenuItem; //Unter diesem Menüpunkt werden die Untermenüpunkte angehängt
myObject.AddMenuItems(items); //Untermenüpunkte aus einer List erzeugen
}
dmi.Password = "abc";
dmi.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml";
dmi.Topic = "NX-Portal";
dmi.Group = "Bundle";
dmi.Key = "License";
dmi.Menu = subtestToolStripMenuItem;
dmi.BackColor = Color.FromArgb(60, 60, 60);
dmi.ForeColor = SystemColors.ControlDark;
string[] items = { "NX91110", "NX93300", "SC13500" };
dmi.AddMenuItems(items); //Menüeinträge aus einer List erzeugen
labelResult.Text = "";
foreach (var item in dmi.GetSubMenuItems())
public static void myObject_MyEvent(Object objSender, EventArgs e)
{
labelResult.Text += item + "\n\r";
}
DoSomethingInForm1(); //Wird ausgeführt, wenn ein Event gefeuert wird
}
private void buttonAddMenuItemsFromXML_Click(object sender, EventArgs e)
public static void DoSomethingInForm1()
{
DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
var dmi = new DynamicMenuItems();
dmi.Password = "abc";
dmi.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml";
dmi.Topic = "NX-Portal";
dmi.Group = "Bundle";
dmi.Key = "License";
dmi.Menu = subtestToolStripMenuItem;
dmi.BackColor = Color.FromArgb(60, 60, 60);
dmi.ForeColor = SystemColors.ControlDark;
dmi.AddMenuItemsFromXML(); //Alle Menüeinträge aus einer XML-Datei erzeugen
}
private void buttonRemoveItem_Click(object sender, EventArgs e)
{
//DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
DynamicMenuItems dmi = new DynamicMenuItems();
dmi.Menu = subtestToolStripMenuItem;
dmi.RemoveMenuItem("NX91110"); //Einen Menüeintrag löschen
}
private void buttonRemoveItems_Click(object sender, EventArgs e)
{
DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
var dmi = new DynamicMenuItems();
dmi.Menu = subtestToolStripMenuItem;
string[] items = { "NX91110", "NX93300", "SC13500" };
dmi.RemoveMenuItems(items); //Eine Liste von Menüeinträgen löschen
}
private void buttonRemoveAllMenuItems_Click(object sender, EventArgs e)
{
DynamicMenuItems.LogFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\Log.log";
var dmi = new DynamicMenuItems();
dmi.Menu = subtestToolStripMenuItem;
dmi.RemoveAllMenuItems(); //Alle Menüeinträge löschen
//Wird ausgeführt, wenn ein Untermenüpunkt ausgewählt wird
MessageBox.Show("Juhu, es hat funktioniert");
}
}
}

View File

@ -5,11 +5,11 @@ 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("DynamicMenuItems")]
[assembly: AssemblyDescription("Generates menu items at runtime")]
[assembly: AssemblyTitle("Test_TDynamicMenuItems")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DynamicMenuItems")]
[assembly: AssemblyProduct("Test_TDynamicMenuItems")]
[assembly: AssemblyCopyright("Copyright © 2023 by Eugen Höglinger")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("842446da-7c9e-43e1-baa9-c0011365a5f4")]
[assembly: Guid("e59adf75-279a-46be-ae8c-67f4fdfcf3bf")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
@ -30,7 +30,7 @@ using System.Runtime.InteropServices;
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")] //Wenn auskommentiert, dann gleich wie AssemblyVersion!
//[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -4,17 +4,18 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{842446DA-7C9E-43E1-BAA9-C0011365A5F4}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Eugen.ESystem</RootNamespace>
<AssemblyName>hedynmeit</AssemblyName>
<ProjectGuid>{E59ADF75-279A-46BE-AE8C-67F4FDFCF3BF}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Test_TDynamicMenuItems</RootNamespace>
<AssemblyName>Test_TDynamicMenuItems</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>false</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@ -24,6 +25,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
@ -32,48 +34,55 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="hecryption">
<HintPath>..\..\Cryption.git\Cryption\bin\Debug\hecryption.dll</HintPath>
</Reference>
<Reference Include="helogwri">
<HintPath>..\..\LogWriter.git\LogWriter\bin\Debug\helogwri.dll</HintPath>
</Reference>
<Reference Include="heloxmlf">
<HintPath>..\..\LoadXMLFile.git\LoadXMLFile\bin\Debug\heloxmlf.dll</HintPath>
</Reference>
<Reference Include="heroaming">
<HintPath>..\..\Roaming.git\Roaming\bin\Debug\heroaming.dll</HintPath>
</Reference>
<Reference Include="heshowtf">
<HintPath>..\..\ShowTextFile.git\ShowTextFile\bin\Debug\heshowtf.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="thedynmeit">
<HintPath>..\Test_DynamicMenuItems\bin\Debug\thedynmeit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DynamicMenuItems.cs" />
<Compile Include="Properties\AppResources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>AppResources.resx</DependentUpon>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\AppResources.de.resx" />
<EmbeddedResource Include="Properties\AppResources.en.resx" />
<EmbeddedResource Include="Properties\AppResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AppResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More