Änderungen

- Determinismus  deaktiviert wegen automatischer Versionierung
- MessageBox Ausgabe auf multilingual umgestellt
- Code übersichtlicher gestaltet
This commit is contained in:
Eugen Höglinger 2024-06-07 12:17:08 +02:00
parent ebcffa1274
commit a569e90d11
44 changed files with 604 additions and 410 deletions

View File

@ -3,24 +3,24 @@
"WorkspaceRootPath": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|solutionrelative:tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|solutionrelative:tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|c:\\cad\\git-workrepository\\visualstudio\\_user control\\tabcontrolswithdatagridviews.git\\he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|solutionrelative:he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
"AbsoluteMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|solutionrelative:he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\tabcontrolswithdatagridviews\\tabcontrolwithdatagridview.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|solutionrelative:tabcontrolswithdatagridviews\\tabcontrolwithdatagridview.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|solutionrelative:he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|solutionrelative:tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{47DB0405-1331-455C-ACAE-A2C2FF02B162}|HE-Test_Dll\\HE-Test_Dll.csproj|solutionrelative:he-test_dll\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{A4B2147B-532C-474C-BFBA-D4AB7E6E820E}|TabControlsWithDataGridViews\\TabControlsWithDataGridViews.csproj|solutionrelative:tabcontrolswithdatagridviews\\tabcontrolswithdatagridviews.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
}
],
"DocumentGroupContainers": [
@ -30,7 +30,7 @@
"DocumentGroups": [
{
"DockedHeight": 200,
"SelectedChildIndex": 6,
"SelectedChildIndex": 4,
"Children": [
{
"$type": "Bookmark",
@ -50,13 +50,13 @@
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 0,
"Title": "Form1.cs",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\HE-Test_Dll\\Form1.cs",
"RelativeDocumentMoniker": "HE-Test_Dll\\Form1.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\HE-Test_Dll\\Form1.cs",
"RelativeToolTip": "HE-Test_Dll\\Form1.cs",
"ViewState": "AQIAAAYAAAAAAAAAAAAAAGgAAABcAAAA",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAGgAAABcAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-06T10:49:04.025Z",
"EditorCaption": ""
@ -64,52 +64,48 @@
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "TabControlsWithDataGridViews.cs",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"RelativeDocumentMoniker": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"RelativeToolTip": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"ViewState": "AQIAAAUAAAAAAAAAAAAowGkAAABSAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-03T09:00:19.318Z"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "TabControlWithDataGridView.cs",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"RelativeDocumentMoniker": "TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"RelativeToolTip": "TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"ViewState": "AQIAAC8AAAAAAAAAAAAAAFIBAAAIAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-06T11:52:35.939Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Form1.cs [Entwurf]",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\HE-Test_Dll\\Form1.cs",
"RelativeDocumentMoniker": "HE-Test_Dll\\Form1.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\HE-Test_Dll\\Form1.cs [Entwurf]",
"RelativeToolTip": "HE-Test_Dll\\Form1.cs [Entwurf]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-06T10:09:33.322Z",
"EditorCaption": " [Entwurf]"
"WhenOpened": "2024-05-06T10:09:33.322Z"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "TabControlsWithDataGridViews.cs",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"RelativeDocumentMoniker": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"RelativeToolTip": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"ViewState": "AQIAAG0AAAAAAAAAAAAowIkAAABeAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-03T09:00:19.318Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 4,
"Title": "TabControlsWithDataGridViews.cs [Entwurf]",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"RelativeDocumentMoniker": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs [Entwurf]",
"RelativeToolTip": "TabControlsWithDataGridViews\\TabControlsWithDataGridViews.cs [Entwurf]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-03T09:00:14.305Z",
"EditorCaption": " [Entwurf]"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "TabControlWithDataGridView.cs",
"DocumentMoniker": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"RelativeDocumentMoniker": "TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"ToolTip": "C:\\CAD\\Git-WorkRepository\\VisualStudio\\_USER CONTROL\\TabControlsWithDataGridViews.git\\TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"RelativeToolTip": "TabControlsWithDataGridViews\\TabControlWithDataGridView.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAK8BAABUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-06T11:52:35.939Z",
"EditorCaption": ""
"WhenOpened": "2024-05-03T09:00:14.305Z"
}
]
}

View File

@ -110,7 +110,6 @@
private System.Windows.Forms.GroupBox groupBoxDLLInfo;
private System.Windows.Forms.Label labelDLLInfo;
private Eugen.ESystem.Windows.Forms.TabControlsWithDataGridViews tabControlsWithDataGridViews;
private Eugen.ESystem.Windows.Forms.TabControlsWithDataGridViews tabControlsWithDataGridViews1;
}
}

Binary file not shown.

Binary file not shown.

View File

@ -59,5 +59,32 @@ namespace Eugen.ESystem.Windows.Forms.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Deletion not possible! ähnelt.
/// </summary>
internal static string Message01 {
get {
return ResourceManager.GetString("Message01", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Tab cannot be deleted, ähnelt.
/// </summary>
internal static string Message02 {
get {
return ResourceManager.GetString("Message02", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die because the table still contains data! ähnelt.
/// </summary>
internal static string Message03 {
get {
return ResourceManager.GetString("Message03", resourceCulture);
}
}
}
}

View File

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

View File

@ -59,5 +59,32 @@ namespace Eugen.ESystem.Windows.Forms.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Löschen nicht möglich! ähnelt.
/// </summary>
internal static string Message01 {
get {
return ResourceManager.GetString("Message01", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Tab kann nicht gelöscht werden, ähnelt.
/// </summary>
internal static string Message02 {
get {
return ResourceManager.GetString("Message02", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die weil die Tabelle noch Daten enthälten! ähnelt.
/// </summary>
internal static string Message03 {
get {
return ResourceManager.GetString("Message03", resourceCulture);
}
}
}
}

View File

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

View File

@ -59,5 +59,32 @@ namespace Eugen.ESystem.Windows.Forms.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Deletion not possible! ähnelt.
/// </summary>
internal static string Message01 {
get {
return ResourceManager.GetString("Message01", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Tab cannot be deleted, ähnelt.
/// </summary>
internal static string Message02 {
get {
return ResourceManager.GetString("Message02", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die because the table still contains data! ähnelt.
/// </summary>
internal static string Message03 {
get {
return ResourceManager.GetString("Message03", resourceCulture);
}
}
}
}

View File

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

View File

@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// 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.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -4,6 +4,7 @@ using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using AppRes = Eugen.ESystem.Windows.Forms.Properties.AppResources;
namespace Eugen.ESystem.Windows.Forms
{
@ -89,8 +90,6 @@ namespace Eugen.ESystem.Windows.Forms
private int SelectedRow { get; set; }
private List<List<string[]>> AllFiles { get; set; }
int maxNumbersOfTabPages = 12;
#region Public Methodes
/// <summary>
/// Creates a tab for each directory in the root directory
@ -107,27 +106,11 @@ namespace Eugen.ESystem.Windows.Forms
{
List<List<string[]>> fileList = ReadFromDirectory(Extension); // Read files from directory
// Only file with the defined extension are allowed
foreach (var item in fileList)
{
for (int i = 0; i < item.Count; i++)
{
if (Path.GetExtension(item[i].GetValue(1).ToString()) != Extension)
{
fileList.Remove(item);
}
}
}
CorrectFileList(fileList); // Only file with the defined extension are allowed
DataGridView dataGridView = DynamicTabControl.SelectedTab.Controls.OfType<DataGridView>().FirstOrDefault(); // Chang the control to the first dataGridView
for (int i = 0; i < DynamicTabControl.TabCount; i++)
{
DynamicTabControl.SelectedIndex = i; //Set the selected 'TabPage' as current 'TabPage'
dataGridView = DynamicTabControl.SelectedTab.Controls.OfType<DataGridView>().FirstOrDefault(); // Chang the control to the current dataGridView
WriteDataGridView(dataGridView, fileList[i]);
}
SetCurrentTabPageAndFillWithData(dataGridView, fileList); // Set the selected 'TabPage' as current 'TabPage' and fill with data
// Actavate the first 'TabPage'
DynamicTabControl.SelectedIndex = setTab; //Set the selected 'TabPage' as current 'TabPage'
@ -209,7 +192,7 @@ namespace Eugen.ESystem.Windows.Forms
{
int numberOfTabs = DynamicTabControl.TabCount;
if (numberOfTabs < maxNumbersOfTabPages)
if (numberOfTabs < MaxNoOfTabs)
{
AddMoveToButton(Controls, numberOfTabs); // Add Button to UserControl
AddTabPage(DynamicTabControl, numberOfTabs); // Add TabPage to TabControl
@ -258,7 +241,7 @@ namespace Eugen.ESystem.Windows.Forms
}
else
{
MessageBox.Show("Löschen nicht möglich!\n\r\n\rTab kann nicht gelöscht werden,\n\rweil die Tabelle noch Daten enthälten!\n\r");
MessageBox.Show(AppRes.Message01 + "\n\r\n\r" + AppRes.Message02 + "\n\r" + AppRes.Message03 + "\n\r");
}
}
}
@ -300,7 +283,7 @@ namespace Eugen.ESystem.Windows.Forms
}
else
{
MessageBox.Show("Löschen nicht möglich!\n\r\n\rTab kann nicht gelöscht werden,\n\rweil die Tabelle noch Daten enthälten!\n\r");
MessageBox.Show(AppRes.Message01 + "\n\r\n\r" + AppRes.Message02 + "\n\r" + AppRes.Message03 + "\n\r");
}
RenameTabs(DynamicTabControl); // Rename all 'TabControl' so that they are numbered consecutively again
@ -356,9 +339,15 @@ namespace Eugen.ESystem.Windows.Forms
#region Private Methodes
private List<List<string[]>> ReadFromDirectory(string extension)
{
// Read all directories from the root directory
string[] directories = Directory.GetDirectories(DataPath);
string[] directories = Directory.GetDirectories(DataPath); // Read all directories from the root directory
AllFiles = CreatesAListOfAllFilesInAllDirectories(directories); // Creates a list of all files in all directories
return AllFiles;
}
private List<List<string[]>> CreatesAListOfAllFilesInAllDirectories(string[] directories)
{
// Creates a list of all files in all directories
List<List<string[]>> allFiles = new List<List<string[]>>();
@ -384,11 +373,37 @@ namespace Eugen.ESystem.Windows.Forms
allFiles.Add(filesInTable); // Adds all files of a directory to the list
}
AllFiles = allFiles;
return allFiles;
}
private List<List<string[]>> CorrectFileList(List<List<string[]>> fileList)
{
// Only file with the defined extension are allowed
foreach (var item in fileList)
{
for (int i = 0; i < item.Count; i++)
{
if (Path.GetExtension(item[i].GetValue(1).ToString()) != Extension)
{
fileList.Remove(item);
}
}
}
return fileList;
}
private void SetCurrentTabPageAndFillWithData(DataGridView dataGridView, List<List<string[]>> fileList)
{
for (int i = 0; i < DynamicTabControl.TabCount; i++)
{
DynamicTabControl.SelectedIndex = i; //Set the selected 'TabPage' as current 'TabPage'
dataGridView = DynamicTabControl.SelectedTab.Controls.OfType<DataGridView>().FirstOrDefault(); // Chang the control to the current dataGridView
WriteDataGridView(dataGridView, fileList[i]);
}
}
private void AddTabPage(TabControl dynamicTabControl, int count)
{
TabPage tabPage = new TabPage();
@ -433,7 +448,7 @@ namespace Eugen.ESystem.Windows.Forms
{
Button moveToButton = new Button();
if (number < maxNumbersOfTabPages)
if (number < MaxNoOfTabs)
{
moveToButton.Name = "buttonMoveTo" + number.ToString();
moveToButton.Location = new System.Drawing.Point(TabControlWidth + 80 - 78 - 25, 10 + 58 + (number + 1) * 29 - 29);

View File

@ -106,52 +106,16 @@ namespace Eugen.ESystem.Windows.Forms
private void TabControlsWithDataGridViews_Load(object sender, EventArgs e)
{
// Correct TabControlSize
if (TabControlWidth < minWidth)
{
this.Width = minWidth;
TabControlWidth = this.Width - 80;
}
else if (TabControlWidth > maxWidth)
{
this.Width = maxWidth;
TabControlWidth = this.Width - 80;
}
if (TabControlHeight < minHeight)
{
this.Height = minHeight;
TabControlHeight = this.Height - 26;
}
else if (TabControlHeight > maxHeight)
{
this.Height = minHeight;
TabControlHeight = this.Height - 26;
}
CorrectTabControlSize();
// Set the max. number of tabs
tcwdgv.MaxNoOfTabs = maxNoOfTabs;
// Set the control button location
int controlButtonDistance = (panelButton.Width - (controlButtonWidth * 5) - 6) / 4 + controlButtonWidth; // X distance from the origin point of one button to the origin point of the next button
buttonRemoveTab.Location = new System.Drawing.Point(controlButtonXDistance + controlButtonDistance, 3);
buttonRemoveSelectedTab.Location = new System.Drawing.Point(controlButtonXDistance + 2 * controlButtonDistance, 3);
buttonMoveTabToLeft.Location = new System.Drawing.Point(controlButtonXDistance + 2 + 3 * controlButtonDistance, 3);
SetControlButtonLocation();
tcwdgv.TabControlWidth = TabControlWidth; // The 'TabControl' width
tcwdgv.TabControlHeight = TabControlHeight; // The 'TabControl' hight
tcwdgv.TabTitle = TabTitle; // The title of a 'tabPage'
tcwdgv.Column1Title = Column1Title; // The title of column 1
tcwdgv.Column2Title = Column2Title; // The title of column 2
tcwdgv.MoveToButtonTitle = MoveToButtonTitle; // The title of the 'Move to' buttons
tcwdgv.CreatingTabControl(Controls); // Create a 'TabControl' and a 'TabPage' with a 'DataGridView'
if (String.IsNullOrEmpty(DataPath))
{
DataPath = "";
}
tcwdgv.DataPath = DataPath;
tcwdgv.Extension = Extension;
// Set DataPath and Extension
SetDataPathAndExtension();
// Reads all files from the root directory and writes them to the tables
tcwdgv.CreatesATabForEachDirectory(); // Creates a tab for each directory in the root directory
@ -203,6 +167,61 @@ namespace Eugen.ESystem.Windows.Forms
/// </summary>
public static string MoveToButtonTitle { set; get; }
private void CorrectTabControlSize()
{
// Correct TabControlSize
if (TabControlWidth < minWidth)
{
this.Width = minWidth;
TabControlWidth = this.Width - 80;
}
else if (TabControlWidth > maxWidth)
{
this.Width = maxWidth;
TabControlWidth = this.Width - 80;
}
if (TabControlHeight < minHeight)
{
this.Height = minHeight;
TabControlHeight = this.Height - 26;
}
else if (TabControlHeight > maxHeight)
{
this.Height = minHeight;
TabControlHeight = this.Height - 26;
}
}
private void SetControlButtonLocation()
{
// Set the control button location
int controlButtonDistance = (panelButton.Width - (controlButtonWidth * 5) - 6) / 4 + controlButtonWidth; // X distance from the origin point of one button to the origin point of the next button
buttonRemoveTab.Location = new System.Drawing.Point(controlButtonXDistance + controlButtonDistance, 3);
buttonRemoveSelectedTab.Location = new System.Drawing.Point(controlButtonXDistance + 2 * controlButtonDistance, 3);
buttonMoveTabToLeft.Location = new System.Drawing.Point(controlButtonXDistance + 2 + 3 * controlButtonDistance, 3);
tcwdgv.TabControlWidth = TabControlWidth; // The 'TabControl' width
tcwdgv.TabControlHeight = TabControlHeight; // The 'TabControl' hight
tcwdgv.TabTitle = TabTitle; // The title of a 'tabPage'
tcwdgv.Column1Title = Column1Title; // The title of column 1
tcwdgv.Column2Title = Column2Title; // The title of column 2
tcwdgv.MoveToButtonTitle = MoveToButtonTitle; // The title of the 'Move to' buttons
tcwdgv.CreatingTabControl(Controls); // Create a 'TabControl' and a 'TabPage' with a 'DataGridView'
}
private void SetDataPathAndExtension()
{
// Set DataPath and Extension
if (String.IsNullOrEmpty(DataPath))
{
DataPath = "";
}
tcwdgv.DataPath = DataPath;
tcwdgv.Extension = Extension;
}
private void buttonAddTab_Click(object sender, EventArgs e)
{
tcwdgv.AddTabPageWithDataGridViewAndButton(); // Add an additional 'TabPage' with a 'DataGridView'

View File

@ -10,7 +10,7 @@
<AssemblyName>hetcwdgv</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<Deterministic>false</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>

View File

@ -1 +1 @@
362805a9dc970ac2fcfe5e123d4c993f907ae6939b9faf3dc1a0f00343231b22
25dea20c05cdab1f8de104339a71dea088d604726eceef75f37ee555dee20a6f