중간 커밋

- dockpanelsuite 추가
- RowPanel, TablePanel 추가
This commit is contained in:
2017-06-14 18:21:43 +09:00
parent 475523e02e
commit 1b54dab234
14 changed files with 533 additions and 110 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
obj/ obj/
bin/ bin/
.vs/

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "dockpanelsuite"]
path = dockpanelsuite
url = https://github.com/dockpanelsuite/dockpanelsuite.git

View File

@@ -3,14 +3,84 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using OfficeOpenXml;
using System.IO;
using System.Data;
namespace friction namespace friction
{ {
public class DataExcel public class DataHandler
{ {
public void LoadData(string strFileName) DataTable m_Data = new DataTable();
{
List<string> m_Material1 = new List<string>();
List<string> m_Material2 = new List<string>();
public void LoadData2(string strFileName)
{
FileInfo newFile = new FileInfo(strFileName);
ExcelPackage package = new ExcelPackage(newFile);
ExcelWorksheet Sheet = package.Workbook.Worksheets[1];
m_Data.Clear();
// read column
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
string strCol = (string)Sheet.Cells[Sheet.Dimension.Start.Row, iCol].Value;
m_Data.Columns.Add(new DataColumn(strCol));
}
// read data
for (int iRow = Sheet.Dimension.Start.Row + 1; iRow <= Sheet.Dimension.End.Row; iRow++)
{
DataRow newRow = m_Data.NewRow();
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
var value = Sheet.Cells[iRow, iCol].Value;
if (value is double)
{
float fData = (float)(double)value;
newRow[iCol-1] = fData;
}
else
{
string strData = "";
if (value != null)
strData = (string)value;
newRow[iCol-1] = strData;
}
}
m_Data.Rows.Add(newRow);
}
m_Material1 = (from r in m_Data.AsEnumerable()
select r["Material spring"]).Distinct().Cast<string>().ToList();
m_Material2 = (from r in m_Data.AsEnumerable()
select r["material 2 table"]).Distinct().Cast<string>().ToList();
Console.WriteLine("end");
}
public List<string> GetMaterial1()
{
return m_Material1;
}
public List<string> GetMaterial2()
{
return m_Material2;
}
public DataTable GetData()
{
return m_Data;
} }
} }
} }

15
MainForm.Designer.cs generated
View File

@@ -33,6 +33,7 @@
this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip(); this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.dockPanel = new WeifenLuo.WinFormsUI.Docking.DockPanel();
this.toolStripMain.SuspendLayout(); this.toolStripMain.SuspendLayout();
this.statusStrip.SuspendLayout(); this.statusStrip.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@@ -75,14 +76,23 @@
this.toolStripStatusLabel.Size = new System.Drawing.Size(122, 17); this.toolStripStatusLabel.Size = new System.Drawing.Size(122, 17);
this.toolStripStatusLabel.Text = "Please open database"; this.toolStripStatusLabel.Text = "Please open database";
// //
// Form1 // dockPanel
//
this.dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.dockPanel.Location = new System.Drawing.Point(0, 25);
this.dockPanel.Name = "dockPanel";
this.dockPanel.Size = new System.Drawing.Size(947, 598);
this.dockPanel.TabIndex = 2;
//
// MainForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(947, 645); this.ClientSize = new System.Drawing.Size(947, 645);
this.Controls.Add(this.dockPanel);
this.Controls.Add(this.statusStrip); this.Controls.Add(this.statusStrip);
this.Controls.Add(this.toolStripMain); this.Controls.Add(this.toolStripMain);
this.Name = "Form1"; this.Name = "MainForm";
this.Text = "Form1"; this.Text = "Form1";
this.toolStripMain.ResumeLayout(false); this.toolStripMain.ResumeLayout(false);
this.toolStripMain.PerformLayout(); this.toolStripMain.PerformLayout();
@@ -99,6 +109,7 @@
private System.Windows.Forms.ToolStripButton toolStripButtonOpen; private System.Windows.Forms.ToolStripButton toolStripButtonOpen;
private System.Windows.Forms.StatusStrip statusStrip; private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
private WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel;
} }
} }

View File

@@ -7,18 +7,24 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction namespace friction
{ {
public partial class MainForm : Form public partial class MainForm : Form
{ {
string m_DBFileName = ""; string m_DBFileName = "";
DataExcel m_DataLoader = new DataExcel(); DataHandler m_DataLoader = new DataHandler();
TablePanel m_TablePanel = new TablePanel(); TablePanel m_TablePanel = null;
RowPanel m_RowPanel = null;
public MainForm() public MainForm()
{ {
InitializeComponent(); InitializeComponent();
dockPanel.Theme = new VS2015DarkTheme();
m_TablePanel = new TablePanel(this);
m_RowPanel = new RowPanel(this);
} }
private void toolStripButtonOpen_Click(object sender, EventArgs e) private void toolStripButtonOpen_Click(object sender, EventArgs e)
@@ -29,16 +35,25 @@ namespace friction
if(result == DialogResult.OK) if(result == DialogResult.OK)
{ {
m_DBFileName = ofd.FileName; m_DBFileName = ofd.FileName;
m_DataLoader.LoadData(m_DBFileName); m_DataLoader.LoadData2(m_DBFileName);
UpdateTablePanel(); UpdateTablePanel();
statusStrip.Text = m_DBFileName; toolStripStatusLabel.Text = m_DBFileName;
} }
} }
private void UpdateTablePanel() private void UpdateTablePanel()
{ {
m_TablePanel.UpdateData(m_DataLoader);
if(m_TablePanel.Visible == false)
m_TablePanel.Show(dockPanel);
}
public void OnApplyData()
{
m_RowPanel.UpdateData(m_DataLoader);
if (m_RowPanel.Visible == false)
m_RowPanel.Show(dockPanel);
} }
} }
} }

View File

@@ -124,97 +124,97 @@
<data name="toolStripButtonOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButtonOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
</value> </value>
</data> </data>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

75
RowPanel.Designer.cs generated Normal file
View File

@@ -0,0 +1,75 @@
namespace friction
{
partial class RowPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.dgvData = new System.Windows.Forms.DataGridView();
this.lbColumn = new System.Windows.Forms.CheckedListBox();
((System.ComponentModel.ISupportInitialize)(this.dgvData)).BeginInit();
this.SuspendLayout();
//
// dgvData
//
this.dgvData.AllowUserToOrderColumns = true;
this.dgvData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvData.Location = new System.Drawing.Point(12, 12);
this.dgvData.Name = "dgvData";
this.dgvData.RowTemplate.Height = 23;
this.dgvData.Size = new System.Drawing.Size(701, 699);
this.dgvData.TabIndex = 0;
//
// lbColumn
//
this.lbColumn.FormattingEnabled = true;
this.lbColumn.Location = new System.Drawing.Point(719, 12);
this.lbColumn.Name = "lbColumn";
this.lbColumn.Size = new System.Drawing.Size(176, 708);
this.lbColumn.TabIndex = 1;
//
// RowPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(919, 723);
this.Controls.Add(this.lbColumn);
this.Controls.Add(this.dgvData);
this.HideOnClose = true;
this.Name = "RowPanel";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
this.Text = "Row Data";
((System.ComponentModel.ISupportInitialize)(this.dgvData)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.DataGridView dgvData;
private System.Windows.Forms.CheckedListBox lbColumn;
}
}

31
RowPanel.cs Normal file
View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class RowPanel : DockContent
{
MainForm m_Owner = null;
public RowPanel(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
}
public void UpdateData(DataHandler dataHandler)
{
dgvData.DataSource = dataHandler.GetData();
dgvData.Update();
}
}
}

120
RowPanel.resx Normal file
View File

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

48
TablePanel.Designer.cs generated
View File

@@ -28,11 +28,57 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.cbMaterial2 = new System.Windows.Forms.ComboBox();
this.cbMaterial1 = new System.Windows.Forms.ComboBox();
this.btApply = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// cbMaterial2
//
this.cbMaterial2.FormattingEnabled = true;
this.cbMaterial2.Location = new System.Drawing.Point(32, 122);
this.cbMaterial2.Name = "cbMaterial2";
this.cbMaterial2.Size = new System.Drawing.Size(121, 20);
this.cbMaterial2.TabIndex = 1;
//
// cbMaterial1
//
this.cbMaterial1.FormattingEnabled = true;
this.cbMaterial1.Location = new System.Drawing.Point(32, 61);
this.cbMaterial1.Name = "cbMaterial1";
this.cbMaterial1.Size = new System.Drawing.Size(121, 20);
this.cbMaterial1.TabIndex = 2;
//
// btApply
//
this.btApply.Location = new System.Drawing.Point(32, 179);
this.btApply.Name = "btApply";
this.btApply.Size = new System.Drawing.Size(75, 23);
this.btApply.TabIndex = 3;
this.btApply.Text = "Apply";
this.btApply.UseVisualStyleBackColor = true;
this.btApply.Click += new System.EventHandler(this.btApply_Click);
//
// TablePanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.btApply);
this.Controls.Add(this.cbMaterial1);
this.Controls.Add(this.cbMaterial2);
this.HideOnClose = true;
this.Name = "TablePanel";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockLeft;
this.Text = "TablePanel"; this.Text = "TablePanel";
this.ResumeLayout(false);
} }
#endregion #endregion
private System.Windows.Forms.ComboBox cbMaterial2;
private System.Windows.Forms.ComboBox cbMaterial1;
private System.Windows.Forms.Button btApply;
} }
} }

View File

@@ -13,9 +13,33 @@ namespace friction
{ {
public partial class TablePanel : DockContent public partial class TablePanel : DockContent
{ {
public TablePanel() MainForm m_Owner = null;
public TablePanel(MainForm owner)
{ {
InitializeComponent(); InitializeComponent();
m_Owner = owner;
this.ApplyTheme();
}
public void UpdateData(DataHandler data)
{
var Material1 = data.GetMaterial1();
var Material2 = data.GetMaterial2();
cbMaterial1.Items.Clear();
foreach(var x in Material1)
cbMaterial1.Items.Add(x);
cbMaterial2.Items.Clear();
foreach (var x in Material2)
cbMaterial2.Items.Add(x);
}
private void btApply_Click(object sender, EventArgs e)
{
m_Owner.OnApplyData();
} }
} }
} }

1
dockpanelsuite Submodule

Submodule dockpanelsuite added at dc15750c0a

View File

@@ -48,14 +48,6 @@
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="WeifenLuo.WinFormsUI.Docking, Version=2.15.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481, processorArchitecture=MSIL">
<HintPath>packages\DockPanelSuite.2.15.0\lib\net40\WeifenLuo.WinFormsUI.Docking.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WeifenLuo.WinFormsUI.Docking.ThemeVS2015, Version=2.15.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481, processorArchitecture=MSIL">
<HintPath>packages\DockPanelSuite.ThemeVS2015.2.15.0\lib\net40\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="DataExcel.cs" /> <Compile Include="DataExcel.cs" />
@@ -67,6 +59,12 @@
</Compile> </Compile>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RowPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RowPanel.Designer.cs">
<DependentUpon>RowPanel.cs</DependentUpon>
</Compile>
<Compile Include="TablePanel.cs"> <Compile Include="TablePanel.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@@ -85,6 +83,12 @@
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
</Compile> </Compile>
<EmbeddedResource Include="RowPanel.resx">
<DependentUpon>RowPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="TablePanel.resx">
<DependentUpon>TablePanel.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
@@ -99,6 +103,16 @@
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <None Include="App.config" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="dockpanelsuite\WinFormsUI\ThemeVS2015.csproj">
<Project>{007d4ac8-948f-4816-86ad-b9d1343672c1}</Project>
<Name>ThemeVS2015</Name>
</ProjectReference>
<ProjectReference Include="dockpanelsuite\WinFormsUI\WinFormsUI.csproj">
<Project>{c75532c4-765b-418e-b09b-46d36b2abdb1}</Project>
<Name>WinFormsUI</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -5,6 +5,10 @@ VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "friction", "friction.csproj", "{D9D645D4-9565-4D56-995A-B28896365A2E}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "friction", "friction.csproj", "{D9D645D4-9565-4D56-995A-B28896365A2E}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "dockpanelsuite\WinFormsUI\WinFormsUI.csproj", "{C75532C4-765B-418E-B09B-46D36B2ABDB1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThemeVS2015", "dockpanelsuite\WinFormsUI\ThemeVS2015.csproj", "{007D4AC8-948F-4816-86AD-B9D1343672C1}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -15,6 +19,14 @@ Global
{D9D645D4-9565-4D56-995A-B28896365A2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {D9D645D4-9565-4D56-995A-B28896365A2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.Build.0 = Release|Any CPU {D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.Build.0 = Release|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|Any CPU.Build.0 = Release|Any CPU
{007D4AC8-948F-4816-86AD-B9D1343672C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{007D4AC8-948F-4816-86AD-B9D1343672C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{007D4AC8-948F-4816-86AD-B9D1343672C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{007D4AC8-948F-4816-86AD-B9D1343672C1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE