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 Test_Info { public partial class Form1 : Form { #region Version und Copyright // Version 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 = 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, Version 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(InfoBox.DllName, "\r\n", InfoBox.DllVersion, "\r\n", InfoBox.Copyright); // Zeigt die DLL-Information an } private void buttonShowInfo_Click(object sender, EventArgs e) { string text = "In diesem Bereich wird die komplette Information ausgegeben. Beim Exportieren wird der Inhalt dieses Bereiches auf eine Zeilenlänge von 80 Zeichen formatiert und dann in eine Textdatei exportiert. So kann die Textdatei problemlos auf ein A4 im Hochformat ausgedruckt werden. Zeilenumbrüche und Wagenrückläufe im Text werden erkannt und bei der Formatierung berücksichtigt.\r\nWird der Text oder ein Teil davom markiert und dann exportiert, dann wir der markierte Teil unformatiert exportiert."; // // Diese Zeilen gehört in das Programm kopiert // // Aufruf des Informationsfensters var info = new InfoBox("Meine Info", InfoBox.Icons.Information, "Gesamte Information", "Text selektieren, ist umformatiert exportieren", "Text nicht selektieren, ist formatiert exportiern", "Entscheiden Sie.", text, true); info.ShowDialog(); // // var info1 = new InfoBox("Meine Warnung", InfoBox.Icons.Warning, "Alle Probleme", "Gefahr im Anzug!", "Nicht ignorieren!", "Sofort reagiern!", text, true); info1.ShowDialog(); var info2 = new InfoBox("Meine Frage", InfoBox.Icons.Question, "Ist das Korrekt?", "Kann das sein?", "Oder doch nicht?", "Was ist Ihre Meinung?", "Die Export Funktion kann unterdrückt werden, dann sieht das Fenster so aus.", false); info2.SetSize(400, 300); //Eine neue Fenstergröße definieren info2.ShowDialog(); } } }