修改更新界面
This commit is contained in:
parent
a9d02a5a9d
commit
7828ca663f
DH.Commons.Devies
DH.Commons/Enums
DH.Devices.Camera
DHSoftware.slnDHSoftware
DHSoftware.csprojMainWindow.Designer.csMainWindow.cs
Models
Views
CamConfigFrm.Designer.csCamConfigFrm.csCamConfigFrm.resxCameraConfigControl.Designer.csCameraConfigControl.csCameraConfigControl.resxDetectConfigControl.Designer.csDetectConfigControl.csDetectConfigControl.resxFloatButtonDemo.Designer.csFloatButtonDemo.csFloatButtonDemo.resxPreTreatUserControl.Designer.csPreTreatUserControl.csPreTreatUserControl.resxSizeConfigControl.Designer.csSizeConfigControl.csSizeConfigControl.resxUserConfigFrm.Designer.csUserConfigFrm.csUserDetetion.Designer.csUserDetetion.csUserDetetion.resx
130
DH.Commons.Devies/Base/CameraBase.cs
Normal file
130
DH.Commons.Devies/Base/CameraBase.cs
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using OpenCvSharp;
|
||||||
|
|
||||||
|
namespace DH.Devices.Devices
|
||||||
|
{
|
||||||
|
public class CameraBase
|
||||||
|
{
|
||||||
|
public volatile int SnapshotCount = 0;
|
||||||
|
|
||||||
|
public virtual bool isEnabled { get; set; } = false;
|
||||||
|
|
||||||
|
[Category("采图模式")]
|
||||||
|
[Description("是否连续模式。true:连续模式采图;false:触发模式采图")]
|
||||||
|
[DisplayName("连续模式")]
|
||||||
|
public bool IsContinueMode { get; set; } = false;
|
||||||
|
|
||||||
|
|
||||||
|
public virtual bool isSavePicEnabled { get; set; } = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Category("图片保存")]
|
||||||
|
[Description("图片保存文件夹")]
|
||||||
|
[DisplayName("图片保存文件夹")]
|
||||||
|
public virtual string ImageSaveDirectory { get; set; }
|
||||||
|
|
||||||
|
[Category("图片保存")]
|
||||||
|
[Description("图片保存格式")]
|
||||||
|
[DisplayName("图片保存格式")]
|
||||||
|
public ImageFormat ImageFormat { get; set; } = ImageFormat.Jpeg;
|
||||||
|
|
||||||
|
[Category("采图模式")]
|
||||||
|
[Description("是否硬触发模式。true:硬触发;false:软触发")]
|
||||||
|
[DisplayName("硬触发")]
|
||||||
|
public bool IsHardwareTrigger { get; set; } = false;
|
||||||
|
|
||||||
|
public string SerialNumber { get; set; } = string.Empty;
|
||||||
|
public string CameraName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string CameraIP { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string ComputerIP { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
// public StreamFormat dvpStreamFormat = dvpStreamFormat.;
|
||||||
|
|
||||||
|
[Category("采图模式")]
|
||||||
|
[Description("是否传感器直接硬触发。true:传感器硬触发,不通过软件触发;false:通过软件触发IO 的硬触发模式")]
|
||||||
|
[DisplayName("是否传感器直接硬触发")]
|
||||||
|
public bool IsDirectHardwareTrigger { get; set; } = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 增益
|
||||||
|
/// </summary>
|
||||||
|
[Category("相机设置")]
|
||||||
|
[DisplayName("增益")]
|
||||||
|
[Description("Gain:增益,-1:不设置,不同型号相机的增益,请参考mvs")]
|
||||||
|
public float Gain { get; set; } = -1;
|
||||||
|
|
||||||
|
[Category("图像旋转")]
|
||||||
|
[Description("默认旋转,相机开启后默认不旋转")]
|
||||||
|
[DisplayName("默认旋转")]
|
||||||
|
public virtual float RotateImage { get; set; } = 0;
|
||||||
|
|
||||||
|
[Category("取像配置")]
|
||||||
|
[Description("曝光")]
|
||||||
|
[DisplayName("曝光")]
|
||||||
|
public virtual float Exposure { get; set; } = 200;
|
||||||
|
|
||||||
|
[Category("相机设置")]
|
||||||
|
[DisplayName("硬触发后的延迟")]
|
||||||
|
[Description("TriggerDelay:硬触发后的延迟,单位:us 微秒")]
|
||||||
|
public float TriggerDelay { get; set; } = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 滤波时间
|
||||||
|
/// </summary>
|
||||||
|
[Category("相机设置")]
|
||||||
|
[DisplayName("滤波时间")]
|
||||||
|
[Description("LineDebouncerTime:I/O去抖时间 单位:us")]
|
||||||
|
public int LineDebouncerTime { get; set; } = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Action<DateTime, CameraBase, Mat> OnHImageOutput { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 相机连接
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>是否成功</returns>
|
||||||
|
public virtual bool CameraConnect() { return false; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 相机断开
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>是否成功</returns>
|
||||||
|
public virtual bool CameraDisConnect() { return false; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 抓取一张图像
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>图像</returns>
|
||||||
|
//internal virtual HObject GrabOneImage(string cameraName) { return null; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设置曝光时间
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="exposureTime">曝光时间</param>
|
||||||
|
public virtual void SetExposure(int exposureTime, string cameraName) { }
|
||||||
|
/// <summary>
|
||||||
|
/// 设置增益
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="exposure">增益</param>
|
||||||
|
public virtual void SetGain(int gain, string cameraName) { }
|
||||||
|
/// <summary>
|
||||||
|
/// 设置采集模式
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="mode">0=连续采集,即异步采集 1=单次采集,即同步采集</param>
|
||||||
|
internal virtual void SetAcquisitionMode(int mode) { }
|
||||||
|
/// <summary>
|
||||||
|
/// 设置采集图像的ROI
|
||||||
|
/// </summary>
|
||||||
|
internal virtual void SetAcqRegion(int offsetV, int offsetH, int imageH, int imageW, string cameraName) { }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
31
DH.Commons.Devies/DH.Commons.Devies.csproj
Normal file
31
DH.Commons.Devies/DH.Commons.Devies.csproj
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<Platforms>AnyCPU;X64</Platforms>
|
||||||
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Enums\" />
|
||||||
|
<Folder Include="Helper\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="OpenCvSharp4" Version="4.10.0.20241108" />
|
||||||
|
<PackageReference Include="OpenCvSharp4.Extensions" Version="4.10.0.20241108" />
|
||||||
|
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.10.0.20241108" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="halcondotnet">
|
||||||
|
<HintPath>..\x64\Debug\halcondotnet.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="hdevenginedotnet">
|
||||||
|
<HintPath>..\x64\Debug\hdevenginedotnet.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
16
DH.Commons/Enums/ClassHelper.cs
Normal file
16
DH.Commons/Enums/ClassHelper.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DH.Commons.Enums
|
||||||
|
{
|
||||||
|
public class CameraInfo
|
||||||
|
{
|
||||||
|
public string CamName { get; set; }
|
||||||
|
public string Serinum { get; set; }
|
||||||
|
public string IP { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,7 +13,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="CameraBase.cs" />
|
|
||||||
<Compile Include="Do3ThinkCamera.cs" />
|
<Compile Include="Do3ThinkCamera.cs" />
|
||||||
<Compile Include="HikVisionCamera.cs" />
|
<Compile Include="HikVisionCamera.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -25,6 +24,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\DH.Commons.Devies\DH.Commons.Devies.csproj" />
|
||||||
<ProjectReference Include="..\DH.Commons\DH.Commons.csproj" />
|
<ProjectReference Include="..\DH.Commons\DH.Commons.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection.Metadata;
|
using System.Reflection.Metadata;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
using DH.Devices.Devices;
|
||||||
using DVPCameraType;
|
using DVPCameraType;
|
||||||
using OpenCvSharp;
|
using OpenCvSharp;
|
||||||
using static System.Net.Mime.MediaTypeNames;
|
using static System.Net.Mime.MediaTypeNames;
|
||||||
@ -20,6 +21,7 @@ namespace DH.Devices.Camera
|
|||||||
|
|
||||||
public int m_n_dev_count = 0;
|
public int m_n_dev_count = 0;
|
||||||
private DVPCamera.dvpStreamCallback ImageCallback;
|
private DVPCamera.dvpStreamCallback ImageCallback;
|
||||||
|
public dvpStreamFormat dvpStreamFormat = dvpStreamFormat.S_RGB24;
|
||||||
public int m_CamCount = 0;
|
public int m_CamCount = 0;
|
||||||
public Double m_dfDisplayCount = 0;
|
public Double m_dfDisplayCount = 0;
|
||||||
public Do3ThinkCamera()
|
public Do3ThinkCamera()
|
||||||
|
@ -5,6 +5,7 @@ using System.Runtime.InteropServices;
|
|||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using DH.Commons.Enums;
|
using DH.Commons.Enums;
|
||||||
using static MvCamCtrl.NET.MyCamera;
|
using static MvCamCtrl.NET.MyCamera;
|
||||||
|
using DH.Devices.Devices;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Motion", "Motion", "{5C8472
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DH.Devices.Motion", "DH.Devices.Motion\DH.Devices.Motion.csproj", "{144E3775-0BD7-4528-9FB0-A0F4ADC74313}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DH.Devices.Motion", "DH.Devices.Motion\DH.Devices.Motion.csproj", "{144E3775-0BD7-4528-9FB0-A0F4ADC74313}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DH.Commons.Devies", "DH.Commons.Devies\DH.Commons.Devies.csproj", "{A33108B6-2740-4D28-AD22-B280372980BE}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -83,6 +85,14 @@ Global
|
|||||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|Any CPU.Build.0 = Release|Any CPU
|
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.ActiveCfg = Release|x64
|
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.ActiveCfg = Release|x64
|
||||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.Build.0 = Release|x64
|
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.Build.0 = Release|x64
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|x64.ActiveCfg = Debug|X64
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|x64.Build.0 = Debug|X64
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|x64.ActiveCfg = Release|X64
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|x64.Build.0 = Release|X64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@ -97,6 +107,7 @@ Global
|
|||||||
{458B2CF6-6F1B-4B8B-BB85-C6FD7F453A5D} = {2560C5A5-0CA2-48AD-B606-6C55BEFD8109}
|
{458B2CF6-6F1B-4B8B-BB85-C6FD7F453A5D} = {2560C5A5-0CA2-48AD-B606-6C55BEFD8109}
|
||||||
{5C8472C6-EB6A-4D89-B519-7073BBF6A5D2} = {8EC33C16-65CE-4C12-9C8D-DB2425F9F7C0}
|
{5C8472C6-EB6A-4D89-B519-7073BBF6A5D2} = {8EC33C16-65CE-4C12-9C8D-DB2425F9F7C0}
|
||||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313} = {5C8472C6-EB6A-4D89-B519-7073BBF6A5D2}
|
{144E3775-0BD7-4528-9FB0-A0F4ADC74313} = {5C8472C6-EB6A-4D89-B519-7073BBF6A5D2}
|
||||||
|
{A33108B6-2740-4D28-AD22-B280372980BE} = {0AB4BB9A-A861-4F80-B549-CD331490942B}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {6FC1A8DF-636E-434C-981E-10F20FAD723B}
|
SolutionGuid = {6FC1A8DF-636E-434C-981E-10F20FAD723B}
|
||||||
|
@ -12,20 +12,13 @@
|
|||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Views\CamConfigFrm.cs" />
|
|
||||||
<Compile Include="Views\CamConfigFrm.Designer.cs" />
|
|
||||||
<Compile Include="Views\UserConfigFrm.cs" />
|
|
||||||
<Compile Include="Views\UserConfigFrm.Designer.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="Views\CamConfigFrm.resx" />
|
|
||||||
<EmbeddedResource Include="Views\UserConfigFrm.resx" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AntdUI" Version="1.8.9" />
|
<PackageReference Include="AntdUI" Version="1.9.3" />
|
||||||
<PackageReference Include="System.IO.Ports" Version="9.0.2" />
|
<PackageReference Include="System.IO.Ports" Version="9.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
201
DHSoftware/MainWindow.Designer.cs
generated
201
DHSoftware/MainWindow.Designer.cs
generated
@ -47,17 +47,15 @@
|
|||||||
panel2 = new AntdUI.Panel();
|
panel2 = new AntdUI.Panel();
|
||||||
panel4 = new AntdUI.Panel();
|
panel4 = new AntdUI.Panel();
|
||||||
panel6 = new AntdUI.Panel();
|
panel6 = new AntdUI.Panel();
|
||||||
|
splitContainer1 = new SplitContainer();
|
||||||
|
splitContainer2 = new SplitContainer();
|
||||||
tabImgDisplay = new AntdUI.Tabs();
|
tabImgDisplay = new AntdUI.Tabs();
|
||||||
tabPage1 = new AntdUI.TabPage();
|
tabPage1 = new AntdUI.TabPage();
|
||||||
panel5 = new AntdUI.Panel();
|
tabsStas = new AntdUI.Tabs();
|
||||||
tabs3 = new AntdUI.Tabs();
|
|
||||||
tabPage3 = new AntdUI.TabPage();
|
tabPage3 = new AntdUI.TabPage();
|
||||||
richTextBox1 = new RichTextBox();
|
richTextBox1 = new RichTextBox();
|
||||||
divider3 = new AntdUI.Divider();
|
tabsConfig = new AntdUI.Tabs();
|
||||||
panel3 = new AntdUI.Panel();
|
|
||||||
tabs2 = new AntdUI.Tabs();
|
|
||||||
tabPage2 = new AntdUI.TabPage();
|
tabPage2 = new AntdUI.TabPage();
|
||||||
divider1 = new AntdUI.Divider();
|
|
||||||
panel1 = new AntdUI.Panel();
|
panel1 = new AntdUI.Panel();
|
||||||
segmented1 = new AntdUI.Segmented();
|
segmented1 = new AntdUI.Segmented();
|
||||||
titlebar.SuspendLayout();
|
titlebar.SuspendLayout();
|
||||||
@ -66,12 +64,18 @@
|
|||||||
panel2.SuspendLayout();
|
panel2.SuspendLayout();
|
||||||
panel4.SuspendLayout();
|
panel4.SuspendLayout();
|
||||||
panel6.SuspendLayout();
|
panel6.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
|
||||||
|
splitContainer1.Panel1.SuspendLayout();
|
||||||
|
splitContainer1.Panel2.SuspendLayout();
|
||||||
|
splitContainer1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)splitContainer2).BeginInit();
|
||||||
|
splitContainer2.Panel1.SuspendLayout();
|
||||||
|
splitContainer2.Panel2.SuspendLayout();
|
||||||
|
splitContainer2.SuspendLayout();
|
||||||
tabImgDisplay.SuspendLayout();
|
tabImgDisplay.SuspendLayout();
|
||||||
panel5.SuspendLayout();
|
tabsStas.SuspendLayout();
|
||||||
tabs3.SuspendLayout();
|
|
||||||
tabPage3.SuspendLayout();
|
tabPage3.SuspendLayout();
|
||||||
panel3.SuspendLayout();
|
tabsConfig.SuspendLayout();
|
||||||
tabs2.SuspendLayout();
|
|
||||||
panel1.SuspendLayout();
|
panel1.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -120,7 +124,6 @@
|
|||||||
buttonSZ.Radius = 0;
|
buttonSZ.Radius = 0;
|
||||||
buttonSZ.Size = new Size(50, 40);
|
buttonSZ.Size = new Size(50, 40);
|
||||||
buttonSZ.TabIndex = 0;
|
buttonSZ.TabIndex = 0;
|
||||||
buttonSZ.Visible = false;
|
|
||||||
buttonSZ.WaveSize = 0;
|
buttonSZ.WaveSize = 0;
|
||||||
//
|
//
|
||||||
// pageHeader1
|
// pageHeader1
|
||||||
@ -139,7 +142,7 @@
|
|||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
label1.AutoSize = true;
|
label1.AutoSize = true;
|
||||||
label1.Location = new Point(61, 10);
|
label1.Location = new Point(709, 10);
|
||||||
label1.Name = "label1";
|
label1.Name = "label1";
|
||||||
label1.Size = new Size(64, 21);
|
label1.Size = new Size(64, 21);
|
||||||
label1.TabIndex = 1;
|
label1.TabIndex = 1;
|
||||||
@ -148,10 +151,10 @@
|
|||||||
// divider2
|
// divider2
|
||||||
//
|
//
|
||||||
divider2.Dock = DockStyle.Top;
|
divider2.Dock = DockStyle.Top;
|
||||||
divider2.Location = new Point(0, 0);
|
divider2.Location = new Point(54, 0);
|
||||||
divider2.Name = "divider2";
|
divider2.Name = "divider2";
|
||||||
divider2.OrientationMargin = 0F;
|
divider2.OrientationMargin = 0F;
|
||||||
divider2.Size = new Size(1024, 10);
|
divider2.Size = new Size(970, 10);
|
||||||
divider2.TabIndex = 0;
|
divider2.TabIndex = 0;
|
||||||
divider2.Text = "";
|
divider2.Text = "";
|
||||||
//
|
//
|
||||||
@ -169,7 +172,6 @@
|
|||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
panel2.Controls.Add(panel4);
|
panel2.Controls.Add(panel4);
|
||||||
panel2.Controls.Add(panel3);
|
|
||||||
panel2.Dock = DockStyle.Fill;
|
panel2.Dock = DockStyle.Fill;
|
||||||
panel2.Location = new Point(0, 68);
|
panel2.Location = new Point(0, 68);
|
||||||
panel2.Name = "panel2";
|
panel2.Name = "panel2";
|
||||||
@ -180,71 +182,100 @@
|
|||||||
// panel4
|
// panel4
|
||||||
//
|
//
|
||||||
panel4.Controls.Add(panel6);
|
panel4.Controls.Add(panel6);
|
||||||
panel4.Controls.Add(panel5);
|
|
||||||
panel4.Dock = DockStyle.Fill;
|
panel4.Dock = DockStyle.Fill;
|
||||||
panel4.Location = new Point(0, 0);
|
panel4.Location = new Point(0, 0);
|
||||||
panel4.Name = "panel4";
|
panel4.Name = "panel4";
|
||||||
panel4.Size = new Size(661, 500);
|
panel4.Size = new Size(1024, 500);
|
||||||
panel4.TabIndex = 1;
|
panel4.TabIndex = 1;
|
||||||
panel4.Text = "panel4";
|
panel4.Text = "panel4";
|
||||||
//
|
//
|
||||||
// panel6
|
// panel6
|
||||||
//
|
//
|
||||||
panel6.Controls.Add(tabImgDisplay);
|
panel6.Controls.Add(splitContainer1);
|
||||||
panel6.Dock = DockStyle.Fill;
|
panel6.Dock = DockStyle.Fill;
|
||||||
panel6.Location = new Point(0, 0);
|
panel6.Location = new Point(0, 0);
|
||||||
panel6.Name = "panel6";
|
panel6.Name = "panel6";
|
||||||
panel6.Size = new Size(661, 358);
|
panel6.Size = new Size(1024, 500);
|
||||||
panel6.TabIndex = 1;
|
panel6.TabIndex = 1;
|
||||||
panel6.Text = "panel6";
|
panel6.Text = "panel6";
|
||||||
//
|
//
|
||||||
|
// splitContainer1
|
||||||
|
//
|
||||||
|
splitContainer1.BackColor = SystemColors.Control;
|
||||||
|
splitContainer1.Dock = DockStyle.Fill;
|
||||||
|
splitContainer1.Location = new Point(0, 0);
|
||||||
|
splitContainer1.Name = "splitContainer1";
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel1
|
||||||
|
//
|
||||||
|
splitContainer1.Panel1.Controls.Add(splitContainer2);
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel2
|
||||||
|
//
|
||||||
|
splitContainer1.Panel2.BackColor = SystemColors.ButtonFace;
|
||||||
|
splitContainer1.Panel2.Controls.Add(tabsConfig);
|
||||||
|
splitContainer1.Size = new Size(1024, 500);
|
||||||
|
splitContainer1.SplitterDistance = 580;
|
||||||
|
splitContainer1.SplitterIncrement = 2;
|
||||||
|
splitContainer1.SplitterWidth = 10;
|
||||||
|
splitContainer1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// splitContainer2
|
||||||
|
//
|
||||||
|
splitContainer2.Dock = DockStyle.Fill;
|
||||||
|
splitContainer2.Location = new Point(0, 0);
|
||||||
|
splitContainer2.Name = "splitContainer2";
|
||||||
|
splitContainer2.Orientation = Orientation.Horizontal;
|
||||||
|
//
|
||||||
|
// splitContainer2.Panel1
|
||||||
|
//
|
||||||
|
splitContainer2.Panel1.Controls.Add(tabImgDisplay);
|
||||||
|
//
|
||||||
|
// splitContainer2.Panel2
|
||||||
|
//
|
||||||
|
splitContainer2.Panel2.Controls.Add(tabsStas);
|
||||||
|
splitContainer2.Size = new Size(580, 500);
|
||||||
|
splitContainer2.SplitterDistance = 320;
|
||||||
|
splitContainer2.TabIndex = 0;
|
||||||
|
//
|
||||||
// tabImgDisplay
|
// tabImgDisplay
|
||||||
//
|
//
|
||||||
|
tabImgDisplay.Controls.Add(tabPage1);
|
||||||
tabImgDisplay.Dock = DockStyle.Fill;
|
tabImgDisplay.Dock = DockStyle.Fill;
|
||||||
tabImgDisplay.Location = new Point(0, 0);
|
tabImgDisplay.Location = new Point(0, 0);
|
||||||
tabImgDisplay.Name = "tabImgDisplay";
|
tabImgDisplay.Name = "tabImgDisplay";
|
||||||
tabImgDisplay.Pages.Add(tabPage1);
|
tabImgDisplay.Pages.Add(tabPage1);
|
||||||
tabImgDisplay.Size = new Size(661, 358);
|
tabImgDisplay.Size = new Size(580, 320);
|
||||||
tabImgDisplay.Style = styleCard1;
|
tabImgDisplay.Style = styleCard1;
|
||||||
tabImgDisplay.TabIndex = 0;
|
tabImgDisplay.TabIndex = 1;
|
||||||
tabImgDisplay.Text = "tabs1";
|
tabImgDisplay.Text = "tabs1";
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
tabPage1.Location = new Point(3, 28);
|
tabPage1.Location = new Point(3, 28);
|
||||||
tabPage1.Name = "tabPage1";
|
tabPage1.Name = "tabPage1";
|
||||||
tabPage1.Size = new Size(655, 327);
|
tabPage1.Size = new Size(574, 289);
|
||||||
tabPage1.TabIndex = 0;
|
tabPage1.TabIndex = 0;
|
||||||
tabPage1.Text = "检测";
|
tabPage1.Text = "检测";
|
||||||
//
|
//
|
||||||
// panel5
|
// tabsStas
|
||||||
//
|
//
|
||||||
panel5.Controls.Add(tabs3);
|
tabsStas.Controls.Add(tabPage3);
|
||||||
panel5.Controls.Add(divider3);
|
tabsStas.Dock = DockStyle.Fill;
|
||||||
panel5.Dock = DockStyle.Bottom;
|
tabsStas.Location = new Point(0, 0);
|
||||||
panel5.Location = new Point(0, 358);
|
tabsStas.Name = "tabsStas";
|
||||||
panel5.Name = "panel5";
|
tabsStas.Pages.Add(tabPage3);
|
||||||
panel5.Size = new Size(661, 142);
|
tabsStas.Size = new Size(580, 176);
|
||||||
panel5.TabIndex = 0;
|
tabsStas.Style = styleCard2;
|
||||||
panel5.Text = "panel5";
|
tabsStas.TabIndex = 3;
|
||||||
//
|
tabsStas.Text = "tabs3";
|
||||||
// tabs3
|
|
||||||
//
|
|
||||||
tabs3.Dock = DockStyle.Fill;
|
|
||||||
tabs3.Location = new Point(0, 10);
|
|
||||||
tabs3.Name = "tabs3";
|
|
||||||
tabs3.Pages.Add(tabPage3);
|
|
||||||
tabs3.Size = new Size(661, 132);
|
|
||||||
tabs3.Style = styleCard2;
|
|
||||||
tabs3.TabIndex = 2;
|
|
||||||
tabs3.Text = "tabs3";
|
|
||||||
//
|
//
|
||||||
// tabPage3
|
// tabPage3
|
||||||
//
|
//
|
||||||
tabPage3.Controls.Add(richTextBox1);
|
tabPage3.Controls.Add(richTextBox1);
|
||||||
tabPage3.Location = new Point(3, 28);
|
tabPage3.Location = new Point(3, 28);
|
||||||
tabPage3.Name = "tabPage3";
|
tabPage3.Name = "tabPage3";
|
||||||
tabPage3.Size = new Size(655, 101);
|
tabPage3.Size = new Size(574, 145);
|
||||||
tabPage3.TabIndex = 0;
|
tabPage3.TabIndex = 0;
|
||||||
tabPage3.Text = "日志";
|
tabPage3.Text = "日志";
|
||||||
//
|
//
|
||||||
@ -253,61 +284,30 @@
|
|||||||
richTextBox1.Dock = DockStyle.Fill;
|
richTextBox1.Dock = DockStyle.Fill;
|
||||||
richTextBox1.Location = new Point(0, 0);
|
richTextBox1.Location = new Point(0, 0);
|
||||||
richTextBox1.Name = "richTextBox1";
|
richTextBox1.Name = "richTextBox1";
|
||||||
richTextBox1.Size = new Size(655, 101);
|
richTextBox1.Size = new Size(574, 145);
|
||||||
richTextBox1.TabIndex = 0;
|
richTextBox1.TabIndex = 0;
|
||||||
richTextBox1.Text = "";
|
richTextBox1.Text = "";
|
||||||
//
|
//
|
||||||
// divider3
|
// tabsConfig
|
||||||
//
|
//
|
||||||
divider3.Dock = DockStyle.Top;
|
tabsConfig.Controls.Add(tabPage2);
|
||||||
divider3.Location = new Point(0, 0);
|
tabsConfig.Dock = DockStyle.Fill;
|
||||||
divider3.Name = "divider3";
|
tabsConfig.Location = new Point(0, 0);
|
||||||
divider3.OrientationMargin = 0F;
|
tabsConfig.Name = "tabsConfig";
|
||||||
divider3.Size = new Size(661, 10);
|
tabsConfig.Pages.Add(tabPage2);
|
||||||
divider3.TabIndex = 1;
|
tabsConfig.Size = new Size(434, 500);
|
||||||
divider3.Text = "";
|
tabsConfig.Style = styleCard3;
|
||||||
//
|
tabsConfig.TabIndex = 2;
|
||||||
// panel3
|
tabsConfig.Text = "tabs2";
|
||||||
//
|
|
||||||
panel3.Controls.Add(tabs2);
|
|
||||||
panel3.Controls.Add(divider1);
|
|
||||||
panel3.Dock = DockStyle.Right;
|
|
||||||
panel3.Location = new Point(661, 0);
|
|
||||||
panel3.Name = "panel3";
|
|
||||||
panel3.Size = new Size(363, 500);
|
|
||||||
panel3.TabIndex = 0;
|
|
||||||
panel3.Text = "panel3";
|
|
||||||
//
|
|
||||||
// tabs2
|
|
||||||
//
|
|
||||||
tabs2.Dock = DockStyle.Fill;
|
|
||||||
tabs2.Location = new Point(10, 0);
|
|
||||||
tabs2.Name = "tabs2";
|
|
||||||
tabs2.Pages.Add(tabPage2);
|
|
||||||
tabs2.Size = new Size(353, 500);
|
|
||||||
tabs2.Style = styleCard3;
|
|
||||||
tabs2.TabIndex = 1;
|
|
||||||
tabs2.Text = "tabs2";
|
|
||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
tabPage2.Location = new Point(3, 28);
|
tabPage2.Location = new Point(3, 28);
|
||||||
tabPage2.Name = "tabPage2";
|
tabPage2.Name = "tabPage2";
|
||||||
tabPage2.Size = new Size(347, 469);
|
tabPage2.Size = new Size(428, 469);
|
||||||
tabPage2.TabIndex = 0;
|
tabPage2.TabIndex = 0;
|
||||||
tabPage2.Text = "配置";
|
tabPage2.Text = "配置";
|
||||||
//
|
//
|
||||||
// divider1
|
|
||||||
//
|
|
||||||
divider1.Dock = DockStyle.Left;
|
|
||||||
divider1.Location = new Point(0, 0);
|
|
||||||
divider1.Name = "divider1";
|
|
||||||
divider1.OrientationMargin = 0F;
|
|
||||||
divider1.Size = new Size(10, 500);
|
|
||||||
divider1.TabIndex = 0;
|
|
||||||
divider1.Text = "";
|
|
||||||
divider1.Vertical = true;
|
|
||||||
//
|
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
panel1.Back = SystemColors.MenuHighlight;
|
panel1.Back = SystemColors.MenuHighlight;
|
||||||
@ -418,12 +418,18 @@
|
|||||||
panel2.ResumeLayout(false);
|
panel2.ResumeLayout(false);
|
||||||
panel4.ResumeLayout(false);
|
panel4.ResumeLayout(false);
|
||||||
panel6.ResumeLayout(false);
|
panel6.ResumeLayout(false);
|
||||||
|
splitContainer1.Panel1.ResumeLayout(false);
|
||||||
|
splitContainer1.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit();
|
||||||
|
splitContainer1.ResumeLayout(false);
|
||||||
|
splitContainer2.Panel1.ResumeLayout(false);
|
||||||
|
splitContainer2.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)splitContainer2).EndInit();
|
||||||
|
splitContainer2.ResumeLayout(false);
|
||||||
tabImgDisplay.ResumeLayout(false);
|
tabImgDisplay.ResumeLayout(false);
|
||||||
panel5.ResumeLayout(false);
|
tabsStas.ResumeLayout(false);
|
||||||
tabs3.ResumeLayout(false);
|
|
||||||
tabPage3.ResumeLayout(false);
|
tabPage3.ResumeLayout(false);
|
||||||
panel3.ResumeLayout(false);
|
tabsConfig.ResumeLayout(false);
|
||||||
tabs2.ResumeLayout(false);
|
|
||||||
panel1.ResumeLayout(false);
|
panel1.ResumeLayout(false);
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
}
|
}
|
||||||
@ -441,17 +447,16 @@
|
|||||||
private AntdUI.Panel panel2;
|
private AntdUI.Panel panel2;
|
||||||
private AntdUI.Panel panel4;
|
private AntdUI.Panel panel4;
|
||||||
private AntdUI.Panel panel6;
|
private AntdUI.Panel panel6;
|
||||||
private AntdUI.Panel panel5;
|
private Label label1;
|
||||||
private AntdUI.Panel panel3;
|
private AntdUI.Splitter splitter1;
|
||||||
|
private SplitContainer splitContainer1;
|
||||||
|
private SplitContainer splitContainer2;
|
||||||
private AntdUI.Tabs tabImgDisplay;
|
private AntdUI.Tabs tabImgDisplay;
|
||||||
private AntdUI.TabPage tabPage1;
|
private AntdUI.TabPage tabPage1;
|
||||||
private AntdUI.Tabs tabs3;
|
private AntdUI.Tabs tabsStas;
|
||||||
private AntdUI.TabPage tabPage3;
|
private AntdUI.TabPage tabPage3;
|
||||||
private AntdUI.Divider divider3;
|
|
||||||
private AntdUI.Tabs tabs2;
|
|
||||||
private AntdUI.TabPage tabPage2;
|
|
||||||
private AntdUI.Divider divider1;
|
|
||||||
private RichTextBox richTextBox1;
|
private RichTextBox richTextBox1;
|
||||||
private Label label1;
|
private AntdUI.Tabs tabsConfig;
|
||||||
|
private AntdUI.TabPage tabPage2;
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
227
DHSoftware/Models/DataUtil.cs
Normal file
227
DHSoftware/Models/DataUtil.cs
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace AntdUIDemo.Models
|
||||||
|
{
|
||||||
|
public class DataUtil
|
||||||
|
{
|
||||||
|
public static readonly Dictionary<string, List<MenuItems>> Menu_decetion = new Dictionary<string, List<MenuItems>>()
|
||||||
|
{
|
||||||
|
{ "检测项", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "工位1" , Tag = "工位1"},
|
||||||
|
new MenuItems { Text = "工位2", Tag = "工位2"},
|
||||||
|
new MenuItems { Text = "工位3", Tag = "工位3"},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//{ "布局", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Divider 分割线", Tag = "Divider" },
|
||||||
|
// new MenuItems { Text = "FlowPanel 流动布局", Tag = "FlowPanel"},
|
||||||
|
// new MenuItems { Text = "GridPanel 网格布局", Tag = "GridPanel"},
|
||||||
|
// new MenuItems { Text = "Panel 面板", Tag = "Panel"},
|
||||||
|
// new MenuItems { Text = "Splitter 分隔面板", Tag = "Splitter"},
|
||||||
|
// new MenuItems { Text = "StackPanel 堆叠布局", Tag = "StackPanel"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "导航", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Breadcrumb 面包屑", Tag = "Breadcrumb"},
|
||||||
|
// new MenuItems { Text = "Dropdown 下拉菜单", Tag = "Dropdown"},
|
||||||
|
// new MenuItems { Text = "Menu 导航菜单", Tag = "Menu"},
|
||||||
|
// new MenuItems { Text = "Pagination 分页", Tag = "Pagination"},
|
||||||
|
// new MenuItems { Text = "Steps 步骤条", Tag = "Steps"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "数据录入", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Checkbox 多选框", Tag = "Checkbox"},
|
||||||
|
// new MenuItems { Text = "ColorPicker 颜色选择器", Tag = "ColorPicker"},
|
||||||
|
// new MenuItems { Text = "DatePicker 日期选择器", Tag = "DatePicker"},
|
||||||
|
// new MenuItems { Text = "DatePickerRange 日期范围选择器", Tag = "DatePickerRange"},
|
||||||
|
// new MenuItems { Text = "Input 输入框", Tag = "Input"},
|
||||||
|
// new MenuItems { Text = "InputNumber 数字输入框", Tag = "InputNumber"},
|
||||||
|
// new MenuItems { Text = "Radio 单选框", Tag = "Radio"},
|
||||||
|
// new MenuItems { Text = "Rate 评分", Tag = "Rate"},
|
||||||
|
// new MenuItems { Text = "Select 选择器", Tag = "Select"},
|
||||||
|
// new MenuItems { Text = "SelectMultiple 多选选择器", Tag = "SelectMultiple"},
|
||||||
|
// new MenuItems { Text = "Slider 滑动输入条", Tag = "Slider"},
|
||||||
|
// new MenuItems { Text = "SliderRange 滑动范围输入条", Tag = "SliderRange"},
|
||||||
|
// new MenuItems { Text = "Switch 开关", Tag = "Switch"},
|
||||||
|
// new MenuItems { Text = "TimePicker 时间选择框", Tag = "TimePicker"},
|
||||||
|
// new MenuItems { Text = "UploadDragger 上传", Tag = "UploadDragger"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "数据展示", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Avatar 头像", Tag = "Avatar"},
|
||||||
|
// new MenuItems { Text = "Badge 徽标数", Tag = "Badge"},
|
||||||
|
// new MenuItems { Text = "Calendar 日历", Tag = "Calendar"},
|
||||||
|
// new MenuItems { Text = "Carousel 走马灯", Tag = "Carousel"},
|
||||||
|
// new MenuItems { Text = "Collapse 折叠面板", Tag = "Collapse"},
|
||||||
|
// new MenuItems { Text = "Label 标签", Tag = "Label"},
|
||||||
|
// new MenuItems { Text = "LabelTime 时间标签", Tag = "LabelTime"},
|
||||||
|
// new MenuItems { Text = "Popover 气泡卡片", Tag = "Popover"},
|
||||||
|
// new MenuItems { Text = "Preview 图片预览", Tag = "Preview"},
|
||||||
|
// new MenuItems { Text = "Segmented 分段控制器", Tag = "Segmented"},
|
||||||
|
// new MenuItems { Text = "Table 表格", Tag = "Table"},
|
||||||
|
// new MenuItems { Text = "Tabs 标签页", Tag = "Tabs"},
|
||||||
|
// new MenuItems { Text = "Tag 标签", Tag = "Tag"},
|
||||||
|
// new MenuItems { Text = "Timeline 时间轴", Tag = "Timeline"},
|
||||||
|
// new MenuItems { Text = "Tooltip 文字提示", Tag = "Tooltip"},
|
||||||
|
// new MenuItems { Text = "Tour 漫游式引导" , Tag = "Tour"},
|
||||||
|
// new MenuItems { Text = "Tree 树形控件", Tag = "Tree"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "反馈", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Alert 警告提示", Tag = "Alert"},
|
||||||
|
// new MenuItems { Text = "Drawer 抽屉", Tag = "Drawer"},
|
||||||
|
// new MenuItems { Text = "Message 全局提示", Tag = "Message"},
|
||||||
|
// new MenuItems { Text = "Modal 对话框", Tag = "Modal"},
|
||||||
|
// new MenuItems { Text = "Notification 通知提醒框", Tag = "Notification"},
|
||||||
|
// new MenuItems { Text = "Progress 进度条", Tag = "Progress"},
|
||||||
|
// new MenuItems { Text = "Spin 加载中", Tag = "Spin"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "聊天", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "ChatList 气泡聊天列表", Tag = "ChatList"},
|
||||||
|
// new MenuItems { Text = "MsgList 好友消息列表", Tag = "MsgList"}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//{ "其它", new List<MenuItems>
|
||||||
|
// {
|
||||||
|
// new MenuItems { Text = "Battery 电池", Tag = "Battery" },
|
||||||
|
// new MenuItems { Text = "ContextMenuStrip 快捷菜单", Tag = "ContextMenuStrip" },
|
||||||
|
// new MenuItems { Text = "Image3D 图片3D", Tag = "Image3D" },
|
||||||
|
// new MenuItems { Text = "PageHeader 页头", Tag= "PageHeader"},
|
||||||
|
// new MenuItems { Text = "Signal 信号", Tag = "Signal" }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly Dictionary<string, string> MenuIcons_zhcn = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "通用", "AppstoreOutlined" },
|
||||||
|
{ "布局", "LayoutOutlined" },
|
||||||
|
{ "导航", "CompressOutlined" },
|
||||||
|
{ "数据录入", "EditOutlined" },
|
||||||
|
{ "数据展示", "BarChartOutlined" },
|
||||||
|
{ "反馈", "NotificationOutlined" },
|
||||||
|
{ "聊天", "MessageOutlined" },
|
||||||
|
{ "其它", "SettingOutlined" }
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly Dictionary<string, List<MenuItems>> MenuItems_enus = new Dictionary<string, List<MenuItems>>()
|
||||||
|
{
|
||||||
|
{ "General", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Button" , Tag = "Button"},
|
||||||
|
new MenuItems { Text = "FloatButton", Tag = "FloatButton"},
|
||||||
|
new MenuItems { Text = "Icon", Tag = "Icon"},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Layout", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Divider", Tag = "Divider" },
|
||||||
|
new MenuItems { Text = "FlowPanel", Tag = "FlowPanel"},
|
||||||
|
new MenuItems { Text = "GridPanel", Tag = "GridPanel"},
|
||||||
|
new MenuItems { Text = "Panel", Tag = "Panel"},
|
||||||
|
new MenuItems { Text = "Splitter ", Tag = "Splitter"},
|
||||||
|
new MenuItems { Text = "StackPanel", Tag = "StackPanel"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Navigation", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Breadcrumb", Tag = "Breadcrumb"},
|
||||||
|
new MenuItems { Text = "Dropdown", Tag = "Dropdown"},
|
||||||
|
new MenuItems { Text = "Menu", Tag = "Menu"},
|
||||||
|
new MenuItems { Text = "Pagination", Tag = "Pagination"},
|
||||||
|
new MenuItems { Text = "Steps", Tag = "Steps"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Data Entry", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Checkbox", Tag = "Checkbox"},
|
||||||
|
new MenuItems { Text = "ColorPicker", Tag = "ColorPicker"},
|
||||||
|
new MenuItems { Text = "DatePicker", Tag = "DatePicker"},
|
||||||
|
new MenuItems { Text = "DatePickerRange", Tag = "DatePickerRange"},
|
||||||
|
new MenuItems { Text = "Input", Tag = "Input"},
|
||||||
|
new MenuItems { Text = "InputNumber", Tag = "InputNumber"},
|
||||||
|
new MenuItems { Text = "Radio", Tag = "Radio"},
|
||||||
|
new MenuItems { Text = "Rate", Tag = "Rate"},
|
||||||
|
new MenuItems { Text = "Select", Tag = "Select"},
|
||||||
|
new MenuItems { Text = "SelectMultiple", Tag = "SelectMultiple"},
|
||||||
|
new MenuItems { Text = "Slider", Tag = "Slider"},
|
||||||
|
new MenuItems { Text = "SliderRange", Tag = "SliderRange"},
|
||||||
|
new MenuItems { Text = "Switch", Tag = "Switch"},
|
||||||
|
new MenuItems { Text = "TimePicker", Tag = "TimePicker"},
|
||||||
|
new MenuItems { Text = "UploadDragger", Tag = "UploadDragger"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Data Display", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Avatar", Tag = "Avatar"},
|
||||||
|
new MenuItems { Text = "Badge", Tag = "Badge"},
|
||||||
|
new MenuItems { Text = "Calendar", Tag = "Calendar"},
|
||||||
|
new MenuItems { Text = "Carousel", Tag = "Carousel"},
|
||||||
|
new MenuItems { Text = "Collapse", Tag = "Collapse"},
|
||||||
|
new MenuItems { Text = "Label", Tag = "Label"},
|
||||||
|
new MenuItems { Text = "LabelTime", Tag = "LabelTime"},
|
||||||
|
new MenuItems { Text = "Popover", Tag = "Popover"},
|
||||||
|
new MenuItems { Text = "Preview", Tag = "Preview"},
|
||||||
|
new MenuItems { Text = "Segmented", Tag = "Segmented"},
|
||||||
|
new MenuItems { Text = "Table", Tag = "Table"},
|
||||||
|
new MenuItems { Text = "Tabs", Tag = "Tabs"},
|
||||||
|
new MenuItems { Text = "Tag", Tag = "Tag"},
|
||||||
|
new MenuItems { Text = "Timeline", Tag = "Timeline"},
|
||||||
|
new MenuItems { Text = "Tooltip", Tag = "Tooltip"},
|
||||||
|
new MenuItems { Text = "Tour" , Tag = "Tour"},
|
||||||
|
new MenuItems { Text = "Tree", Tag = "Tree"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Feedback", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Alert", Tag = "Alert"},
|
||||||
|
new MenuItems { Text = "Drawer", Tag = "Drawer"},
|
||||||
|
new MenuItems { Text = "Message", Tag = "Message"},
|
||||||
|
new MenuItems { Text = "Modal", Tag = "Modal"},
|
||||||
|
new MenuItems { Text = "Notification", Tag = "Notification"},
|
||||||
|
new MenuItems { Text = "Progress", Tag = "Progress"},
|
||||||
|
new MenuItems { Text = "Spin", Tag = "Spin"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Chat", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "ChatList", Tag = "ChatList"},
|
||||||
|
new MenuItems { Text = "MsgList", Tag = "MsgList"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "Other", new List<MenuItems>
|
||||||
|
{
|
||||||
|
new MenuItems { Text = "Battery", Tag = "Battery" },
|
||||||
|
new MenuItems { Text = "ContextMenuStrip", Tag = "ContextMenuStrip" },
|
||||||
|
new MenuItems { Text = "Image3D", Tag = "Image3D" },
|
||||||
|
new MenuItems { Text = "PageHeader", Tag= "PageHeader"},
|
||||||
|
new MenuItems { Text = "Signal", Tag = "Signal" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly Dictionary<string, string> MenuIcons_enus = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "General", "AppstoreOutlined" },
|
||||||
|
{ "Layout", "LayoutOutlined" },
|
||||||
|
{ "Navigation", "CompressOutlined" },
|
||||||
|
{ "Data Entry", "EditOutlined" },
|
||||||
|
{ "Data Display", "BarChartOutlined" },
|
||||||
|
{ "Feedback", "NotificationOutlined" },
|
||||||
|
{ "Chat", "MessageOutlined" },
|
||||||
|
{ "Other", "SettingOutlined" }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
9
DHSoftware/Models/MenuItems.cs
Normal file
9
DHSoftware/Models/MenuItems.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
namespace AntdUIDemo.Models
|
||||||
|
{
|
||||||
|
public class MenuItems
|
||||||
|
{
|
||||||
|
public string IconSvg { get; set; } = null;
|
||||||
|
public string Text { get; set; } = string.Empty;
|
||||||
|
public string Tag { get; set; } = null;
|
||||||
|
}
|
||||||
|
}
|
166
DHSoftware/Models/User.cs
Normal file
166
DHSoftware/Models/User.cs
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
using AntdUI;
|
||||||
|
|
||||||
|
namespace AntdUIDemo.Models
|
||||||
|
{
|
||||||
|
public class User : NotifyProperty
|
||||||
|
{
|
||||||
|
private bool selected = false;
|
||||||
|
private string name;
|
||||||
|
private int age = 0;
|
||||||
|
private string address;
|
||||||
|
private bool enabled = false;
|
||||||
|
private CellImage[] cellImages;
|
||||||
|
private CellTag[] cellTags;
|
||||||
|
private CellBadge cellBadge;
|
||||||
|
private CellText cellText;
|
||||||
|
private CellLink[] cellLinks;
|
||||||
|
private CellProgress cellProgress;
|
||||||
|
private CellDivider cellDivider;
|
||||||
|
//用于设置树形表格,加入自身数组
|
||||||
|
private User[] users;
|
||||||
|
|
||||||
|
public bool Selected
|
||||||
|
{
|
||||||
|
get { return selected; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (selected == value) return;
|
||||||
|
selected = value;
|
||||||
|
OnPropertyChanged(nameof(Selected));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
get { return name; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (name == value) return;
|
||||||
|
name = value;
|
||||||
|
OnPropertyChanged(nameof(Name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Age
|
||||||
|
{
|
||||||
|
get { return age; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (age == value) return;
|
||||||
|
age = value;
|
||||||
|
OnPropertyChanged(nameof(Age));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Address
|
||||||
|
{
|
||||||
|
get { return address; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (address == value) return;
|
||||||
|
address = value;
|
||||||
|
OnPropertyChanged(nameof(Address));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Enabled
|
||||||
|
{
|
||||||
|
get { return enabled; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (enabled == value) return;
|
||||||
|
enabled = value;
|
||||||
|
OnPropertyChanged(nameof(Enabled));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellImage[] CellImages
|
||||||
|
{
|
||||||
|
get { return cellImages; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellImages == value) return;
|
||||||
|
cellImages = value;
|
||||||
|
OnPropertyChanged(nameof(CellImages));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellTag[] CellTags
|
||||||
|
{
|
||||||
|
get { return cellTags; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellTags == value) return;
|
||||||
|
cellTags = value;
|
||||||
|
OnPropertyChanged(nameof(CellTags));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellBadge CellBadge
|
||||||
|
{
|
||||||
|
get { return cellBadge; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellBadge == value) return;
|
||||||
|
cellBadge = value;
|
||||||
|
OnPropertyChanged(nameof(CellBadge));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellText CellText
|
||||||
|
{
|
||||||
|
get { return cellText; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellText == value) return;
|
||||||
|
cellText = value;
|
||||||
|
OnPropertyChanged(nameof(CellText));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellLink[] CellLinks
|
||||||
|
{
|
||||||
|
get { return cellLinks; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellLinks == value) return;
|
||||||
|
cellLinks = value;
|
||||||
|
OnPropertyChanged(nameof(CellLinks));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellProgress CellProgress
|
||||||
|
{
|
||||||
|
get { return cellProgress; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellProgress == value) return;
|
||||||
|
cellProgress = value;
|
||||||
|
OnPropertyChanged(nameof(CellProgress));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellDivider CellDivider
|
||||||
|
{
|
||||||
|
get { return cellDivider; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (cellDivider == value) return;
|
||||||
|
cellDivider = value;
|
||||||
|
OnPropertyChanged(nameof(CellDivider));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public User[] Users
|
||||||
|
{
|
||||||
|
get { return users; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (users == value) return;
|
||||||
|
users = value;
|
||||||
|
OnPropertyChanged(nameof(Users));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
121
DHSoftware/Views/CamConfigFrm.Designer.cs
generated
121
DHSoftware/Views/CamConfigFrm.Designer.cs
generated
@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
partial class CamConfigFrm
|
partial class CamConfigFrm
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 必需的设计器变量。
|
/// 必需的设计器变量。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -28,17 +29,135 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
AntdUI.Tabs.StyleLine styleLine1 = new AntdUI.Tabs.StyleLine();
|
||||||
|
tabs1 = new AntdUI.Tabs();
|
||||||
|
tabPage1 = new AntdUI.TabPage();
|
||||||
|
label1 = new Label();
|
||||||
|
btnRefreshCamList = new Button();
|
||||||
|
dgvCams = new DataGridView();
|
||||||
|
CamName = new DataGridViewTextBoxColumn();
|
||||||
|
Serinum = new DataGridViewTextBoxColumn();
|
||||||
|
IP = new DataGridViewTextBoxColumn();
|
||||||
|
COMBO_DEVICES = new ComboBox();
|
||||||
|
btnsubmit = new Button();
|
||||||
|
tabs1.SuspendLayout();
|
||||||
|
tabPage1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)dgvCams).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
|
// tabs1
|
||||||
|
//
|
||||||
|
tabs1.Controls.Add(tabPage1);
|
||||||
|
tabs1.Dock = DockStyle.Fill;
|
||||||
|
tabs1.Location = new Point(0, 0);
|
||||||
|
tabs1.Name = "tabs1";
|
||||||
|
tabs1.Pages.Add(tabPage1);
|
||||||
|
tabs1.Size = new Size(391, 407);
|
||||||
|
tabs1.Style = styleLine1;
|
||||||
|
tabs1.TabIndex = 0;
|
||||||
|
tabs1.Text = "tabs1";
|
||||||
|
//
|
||||||
|
// tabPage1
|
||||||
|
//
|
||||||
|
tabPage1.Controls.Add(btnsubmit);
|
||||||
|
tabPage1.Controls.Add(label1);
|
||||||
|
tabPage1.Controls.Add(btnRefreshCamList);
|
||||||
|
tabPage1.Controls.Add(dgvCams);
|
||||||
|
tabPage1.Controls.Add(COMBO_DEVICES);
|
||||||
|
tabPage1.Location = new Point(3, 28);
|
||||||
|
tabPage1.Name = "tabPage1";
|
||||||
|
tabPage1.Size = new Size(385, 376);
|
||||||
|
tabPage1.TabIndex = 0;
|
||||||
|
tabPage1.Text = "相机配置";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.Location = new Point(38, 15);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(56, 17);
|
||||||
|
label1.TabIndex = 3;
|
||||||
|
label1.Text = "相机类型";
|
||||||
|
//
|
||||||
|
// btnRefreshCamList
|
||||||
|
//
|
||||||
|
btnRefreshCamList.Location = new Point(36, 43);
|
||||||
|
btnRefreshCamList.Name = "btnRefreshCamList";
|
||||||
|
btnRefreshCamList.Size = new Size(286, 33);
|
||||||
|
btnRefreshCamList.TabIndex = 2;
|
||||||
|
btnRefreshCamList.Text = "刷新相机列表";
|
||||||
|
btnRefreshCamList.UseVisualStyleBackColor = true;
|
||||||
|
btnRefreshCamList.Click += btnRefreshCamList_Click;
|
||||||
|
//
|
||||||
|
// dgvCams
|
||||||
|
//
|
||||||
|
dgvCams.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||||
|
dgvCams.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
dgvCams.Columns.AddRange(new DataGridViewColumn[] { CamName, Serinum, IP });
|
||||||
|
dgvCams.Location = new Point(38, 82);
|
||||||
|
dgvCams.Name = "dgvCams";
|
||||||
|
dgvCams.Size = new Size(284, 206);
|
||||||
|
dgvCams.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// CamName
|
||||||
|
//
|
||||||
|
CamName.HeaderText = "相机名";
|
||||||
|
CamName.Name = "CamName";
|
||||||
|
//
|
||||||
|
// Serinum
|
||||||
|
//
|
||||||
|
Serinum.HeaderText = "序列号";
|
||||||
|
Serinum.Name = "Serinum";
|
||||||
|
//
|
||||||
|
// IP
|
||||||
|
//
|
||||||
|
IP.HeaderText = "相机IP";
|
||||||
|
IP.Name = "IP";
|
||||||
|
//
|
||||||
|
// COMBO_DEVICES
|
||||||
|
//
|
||||||
|
COMBO_DEVICES.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
COMBO_DEVICES.FormattingEnabled = true;
|
||||||
|
COMBO_DEVICES.Location = new Point(100, 12);
|
||||||
|
COMBO_DEVICES.Name = "COMBO_DEVICES";
|
||||||
|
COMBO_DEVICES.Size = new Size(222, 25);
|
||||||
|
COMBO_DEVICES.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// btnsubmit
|
||||||
|
//
|
||||||
|
btnsubmit.Location = new Point(236, 312);
|
||||||
|
btnsubmit.Name = "btnsubmit";
|
||||||
|
btnsubmit.Size = new Size(86, 37);
|
||||||
|
btnsubmit.TabIndex = 4;
|
||||||
|
btnsubmit.Text = "确定";
|
||||||
|
btnsubmit.UseVisualStyleBackColor = true;
|
||||||
|
btnsubmit.Click += btnsubmit_Click;
|
||||||
|
//
|
||||||
// CamConfigFrm
|
// CamConfigFrm
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(tabs1);
|
||||||
Name = "CamConfigFrm";
|
Name = "CamConfigFrm";
|
||||||
Size = new Size(869, 521);
|
Size = new Size(391, 407);
|
||||||
|
tabs1.ResumeLayout(false);
|
||||||
|
tabPage1.ResumeLayout(false);
|
||||||
|
tabPage1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)dgvCams).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.Tabs tabs1;
|
||||||
|
private AntdUI.TabPage tabPage1;
|
||||||
|
private ComboBox COMBO_DEVICES;
|
||||||
|
private Button btnRefreshCamList;
|
||||||
|
private DataGridView dgvCams;
|
||||||
|
private Label label1;
|
||||||
|
private DataGridViewTextBoxColumn CamName;
|
||||||
|
private DataGridViewTextBoxColumn Serinum;
|
||||||
|
private DataGridViewTextBoxColumn IP;
|
||||||
|
private Button btnsubmit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,177 @@
|
|||||||
using System;
|
using DH.Commons.Enums;
|
||||||
|
using DVPCameraType;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
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 static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||||
|
|
||||||
namespace DHSoftware.Views
|
namespace DHSoftware.Views
|
||||||
{
|
{
|
||||||
|
|
||||||
public partial class CamConfigFrm : UserControl
|
public partial class CamConfigFrm : UserControl
|
||||||
{
|
{
|
||||||
|
public int m_n_dev_count = 0;
|
||||||
|
public static int m_CamCount = 0;
|
||||||
|
public static dvpCameraInfo[] m_info = new dvpCameraInfo[16];
|
||||||
|
|
||||||
|
// 在窗体类中声明一个绑定列表(用于动态更新)
|
||||||
|
private BindingList<CameraInfo> _cameraList = new BindingList<CameraInfo>();
|
||||||
public CamConfigFrm()
|
public CamConfigFrm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
// 添加 ComboBox 的项
|
||||||
|
COMBO_DEVICES.Items.AddRange(new string[] { " 度申Do3", "海康Hik", "巴斯勒Basler", "虚拟相机" });
|
||||||
|
|
||||||
|
// 绑定 SelectedIndexChanged 事件
|
||||||
|
COMBO_DEVICES.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
|
||||||
|
|
||||||
|
dgvCams.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||||
|
dgvCams.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
dgvCams.DataSource = _cameraList; // 绑定数据源
|
||||||
|
dgvCams.Location = new Point(38, 82);
|
||||||
|
dgvCams.Name = "dgvCams";
|
||||||
|
dgvCams.Size = new Size(284, 206);
|
||||||
|
dgvCams.TabIndex = 1;
|
||||||
|
}
|
||||||
|
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (COMBO_DEVICES.SelectedItem == null) return;
|
||||||
|
|
||||||
|
string selectedMethod = COMBO_DEVICES.SelectedItem.ToString();
|
||||||
|
switch (selectedMethod)
|
||||||
|
{
|
||||||
|
case "度申Do3":
|
||||||
|
Do3Think();
|
||||||
|
break;
|
||||||
|
case "海康Hik":
|
||||||
|
HiK();
|
||||||
|
break;
|
||||||
|
case "巴斯勒Basler":
|
||||||
|
Basler();
|
||||||
|
break;
|
||||||
|
case "虚拟相机":
|
||||||
|
Virtul();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MessageBox.Show("未找到对应方法");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 其他方法定义...
|
||||||
|
private void Do3Think()
|
||||||
|
{
|
||||||
|
InitDevList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HiK()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
private void Basler()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Virtul()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
private void btnRefreshCamList_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//搜索度申相机
|
||||||
|
InitDevList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 搜索度申相机
|
||||||
|
/// </summary>
|
||||||
|
// Initialize the device list.
|
||||||
|
public void InitDevList()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dvpStatus status;
|
||||||
|
uint i, n = 0;
|
||||||
|
dvpCameraInfo dev_info = new dvpCameraInfo();
|
||||||
|
|
||||||
|
// 清空旧数据
|
||||||
|
_cameraList.Clear();
|
||||||
|
|
||||||
|
// Get the number of cameras that has been connected to a computer.
|
||||||
|
status = DVPCamera.dvpRefresh(ref n);
|
||||||
|
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||||||
|
m_n_dev_count = (int)n;
|
||||||
|
if (status == dvpStatus.DVP_STATUS_OK)
|
||||||
|
{
|
||||||
|
m_CamCount = 0;
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
// Acquire each camera's information one by one.
|
||||||
|
status = DVPCamera.dvpEnum(i, ref dev_info);
|
||||||
|
|
||||||
|
if (status == dvpStatus.DVP_STATUS_OK)
|
||||||
|
{
|
||||||
|
m_info[m_CamCount] = dev_info;
|
||||||
|
|
||||||
|
int item = -1;
|
||||||
|
//if (!UserDefinedName.Checked)
|
||||||
|
{
|
||||||
|
// add FriendlyName
|
||||||
|
item = COMBO_DEVICES.Items.Add(dev_info.FriendlyName);
|
||||||
|
CameraInfo info = new CameraInfo
|
||||||
|
{
|
||||||
|
CamName = dev_info.FriendlyName,
|
||||||
|
Serinum = dev_info.SerialNumber,
|
||||||
|
// IP = dev_info.IP
|
||||||
|
};
|
||||||
|
|
||||||
|
_cameraList.Add(info);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// // add User Define Name
|
||||||
|
// item = COMBO_DEVICES.Items.Add(dev_info.UserID);
|
||||||
|
//}
|
||||||
|
|
||||||
|
m_CamCount++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnsubmit_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,4 +117,13 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<metadata name="CamName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="Serinum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="IP.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
185
DHSoftware/Views/CameraConfigControl.Designer.cs
generated
Normal file
185
DHSoftware/Views/CameraConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
partial class CameraConfigControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
label1 = new AntdUI.Label();
|
||||||
|
comboBox1 = new ComboBox();
|
||||||
|
switch1 = new AntdUI.Switch();
|
||||||
|
label2 = new AntdUI.Label();
|
||||||
|
inputNumber1 = new AntdUI.InputNumber();
|
||||||
|
inputNumber2 = new AntdUI.InputNumber();
|
||||||
|
label3 = new AntdUI.Label();
|
||||||
|
inputNumber3 = new AntdUI.InputNumber();
|
||||||
|
label4 = new AntdUI.Label();
|
||||||
|
label5 = new AntdUI.Label();
|
||||||
|
label6 = new AntdUI.Label();
|
||||||
|
switch2 = new AntdUI.Switch();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.Location = new Point(12, 12);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(58, 23);
|
||||||
|
label1.TabIndex = 0;
|
||||||
|
label1.Text = "相机名";
|
||||||
|
//
|
||||||
|
// comboBox1
|
||||||
|
//
|
||||||
|
comboBox1.FormattingEnabled = true;
|
||||||
|
comboBox1.Location = new Point(76, 10);
|
||||||
|
comboBox1.Name = "comboBox1";
|
||||||
|
comboBox1.Size = new Size(165, 25);
|
||||||
|
comboBox1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// switch1
|
||||||
|
//
|
||||||
|
switch1.Location = new Point(327, 10);
|
||||||
|
switch1.Name = "switch1";
|
||||||
|
switch1.Size = new Size(57, 23);
|
||||||
|
switch1.TabIndex = 2;
|
||||||
|
switch1.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.Location = new Point(12, 41);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(58, 38);
|
||||||
|
label2.TabIndex = 3;
|
||||||
|
label2.Text = "曝光时间";
|
||||||
|
//
|
||||||
|
// inputNumber1
|
||||||
|
//
|
||||||
|
inputNumber1.Location = new Point(76, 41);
|
||||||
|
inputNumber1.Maximum = new decimal(new int[] { 10000000, 0, 0, 0 });
|
||||||
|
inputNumber1.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
inputNumber1.Name = "inputNumber1";
|
||||||
|
inputNumber1.Size = new Size(165, 38);
|
||||||
|
inputNumber1.TabIndex = 4;
|
||||||
|
inputNumber1.Text = "200";
|
||||||
|
inputNumber1.Value = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
//
|
||||||
|
// inputNumber2
|
||||||
|
//
|
||||||
|
inputNumber2.Location = new Point(76, 85);
|
||||||
|
inputNumber2.Maximum = new decimal(new int[] { 16, 0, 0, 0 });
|
||||||
|
inputNumber2.Minimum = new decimal(new int[] { 0, 0, 0, 0 });
|
||||||
|
inputNumber2.Name = "inputNumber2";
|
||||||
|
inputNumber2.Size = new Size(165, 38);
|
||||||
|
inputNumber2.TabIndex = 6;
|
||||||
|
inputNumber2.Text = "6";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
label3.Location = new Point(12, 85);
|
||||||
|
label3.Name = "label3";
|
||||||
|
label3.Size = new Size(58, 38);
|
||||||
|
label3.TabIndex = 5;
|
||||||
|
label3.Text = "增益";
|
||||||
|
//
|
||||||
|
// inputNumber3
|
||||||
|
//
|
||||||
|
inputNumber3.Increment = new decimal(new int[] { 90, 0, 0, 0 });
|
||||||
|
inputNumber3.Location = new Point(76, 129);
|
||||||
|
inputNumber3.Maximum = new decimal(new int[] { 360, 0, 0, 0 });
|
||||||
|
inputNumber3.Minimum = new decimal(new int[] { 0, 0, 0, 0 });
|
||||||
|
inputNumber3.Name = "inputNumber3";
|
||||||
|
inputNumber3.Size = new Size(165, 38);
|
||||||
|
inputNumber3.TabIndex = 8;
|
||||||
|
inputNumber3.Text = "0";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
label4.Location = new Point(12, 129);
|
||||||
|
label4.Name = "label4";
|
||||||
|
label4.Size = new Size(58, 38);
|
||||||
|
label4.TabIndex = 7;
|
||||||
|
label4.Text = "旋转";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
label5.Location = new Point(263, 3);
|
||||||
|
label5.Name = "label5";
|
||||||
|
label5.Size = new Size(58, 36);
|
||||||
|
label5.TabIndex = 9;
|
||||||
|
label5.Text = "相机启用";
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
label6.Location = new Point(263, 45);
|
||||||
|
label6.Name = "label6";
|
||||||
|
label6.Size = new Size(58, 36);
|
||||||
|
label6.TabIndex = 11;
|
||||||
|
label6.Text = "保存原图";
|
||||||
|
//
|
||||||
|
// switch2
|
||||||
|
//
|
||||||
|
switch2.Location = new Point(327, 52);
|
||||||
|
switch2.Name = "switch2";
|
||||||
|
switch2.Size = new Size(57, 23);
|
||||||
|
switch2.TabIndex = 10;
|
||||||
|
switch2.Text = "switch2";
|
||||||
|
//
|
||||||
|
// CameraConfigControl
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(label6);
|
||||||
|
Controls.Add(switch2);
|
||||||
|
Controls.Add(label5);
|
||||||
|
Controls.Add(inputNumber3);
|
||||||
|
Controls.Add(label4);
|
||||||
|
Controls.Add(inputNumber2);
|
||||||
|
Controls.Add(label3);
|
||||||
|
Controls.Add(inputNumber1);
|
||||||
|
Controls.Add(label2);
|
||||||
|
Controls.Add(switch1);
|
||||||
|
Controls.Add(comboBox1);
|
||||||
|
Controls.Add(label1);
|
||||||
|
Name = "CameraConfigControl";
|
||||||
|
Size = new Size(620, 201);
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.Label label1;
|
||||||
|
private ComboBox comboBox1;
|
||||||
|
private AntdUI.Switch switch1;
|
||||||
|
private AntdUI.Label label2;
|
||||||
|
private AntdUI.InputNumber inputNumber1;
|
||||||
|
private AntdUI.InputNumber inputNumber2;
|
||||||
|
private AntdUI.Label label3;
|
||||||
|
private AntdUI.InputNumber inputNumber3;
|
||||||
|
private AntdUI.Label label4;
|
||||||
|
private AntdUI.Label label5;
|
||||||
|
private AntdUI.Label label6;
|
||||||
|
private AntdUI.Switch switch2;
|
||||||
|
}
|
||||||
|
}
|
127
DHSoftware/Views/CameraConfigControl.cs
Normal file
127
DHSoftware/Views/CameraConfigControl.cs
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
using AntdUI;
|
||||||
|
using DH.Devices.Devices;
|
||||||
|
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;
|
||||||
|
|
||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
public partial class CameraConfigControl : UserControl
|
||||||
|
{
|
||||||
|
public CameraConfigControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
// InitTableColumns();
|
||||||
|
InitData();
|
||||||
|
}
|
||||||
|
AntList<CameraBase> antList = null;
|
||||||
|
CameraBase curUser;
|
||||||
|
//private void InitTableColumns()
|
||||||
|
//{
|
||||||
|
// table_base.Columns = new ColumnCollection() {
|
||||||
|
// new ColumnCheck("Selected"){Fixed = true},
|
||||||
|
// new Column("CameraName", "相机名", ColumnAlign.Center)
|
||||||
|
// {
|
||||||
|
// Width="120",
|
||||||
|
// //设置树节点,名称需和User里的User[]名称保持一致
|
||||||
|
// KeyTree = "Users"
|
||||||
|
// },
|
||||||
|
// new Column("CameraIP", "相机IP",ColumnAlign.Center),
|
||||||
|
// new Column("Gain", "增益"){
|
||||||
|
// Width = "120",
|
||||||
|
// LineBreak = true,
|
||||||
|
// },
|
||||||
|
// new ColumnSwitch("IsHardwareTrigger", "硬触发", ColumnAlign.Center){
|
||||||
|
|
||||||
|
// },
|
||||||
|
// new Column("RotateImage", "旋转",ColumnAlign.Center),
|
||||||
|
// new Column("Exposure", "曝光",ColumnAlign.Center),
|
||||||
|
// //new Column("CellBadge", "徽标",ColumnAlign.Center),
|
||||||
|
// //new Column("CellText", "富文本")
|
||||||
|
// //{
|
||||||
|
// // ColAlign = ColumnAlign.Center,//支持表头位置单独设置
|
||||||
|
// //},
|
||||||
|
// //new Column("CellProgress", "进度条",ColumnAlign.Center),
|
||||||
|
// //new Column("CellDivider", "分割线",ColumnAlign.Center),
|
||||||
|
// //new Column("CellLinks", "链接", ColumnAlign.Center)
|
||||||
|
// //{
|
||||||
|
// // Fixed = true,//冻结列
|
||||||
|
// //},
|
||||||
|
// };
|
||||||
|
//}
|
||||||
|
private void InitData()
|
||||||
|
{
|
||||||
|
antList = new AntList<CameraBase>();
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
antList.Add(new CameraBase
|
||||||
|
{
|
||||||
|
CameraName = "相机1",
|
||||||
|
CameraIP = "",
|
||||||
|
Gain = 6,
|
||||||
|
IsHardwareTrigger = true,
|
||||||
|
RotateImage = 50,
|
||||||
|
Exposure = 100,
|
||||||
|
|
||||||
|
|
||||||
|
//CellLinks = new CellLink[] {new CellLink("https://gitee.com/antdui/AntdUI", "AntdUI"),
|
||||||
|
//new CellButton(Guid.NewGuid().ToString(),"编辑",TTypeMini.Primary),
|
||||||
|
//new CellButton(Guid.NewGuid().ToString(), "徽标", TTypeMini.Success)
|
||||||
|
//{
|
||||||
|
// //支持所有单元格控件
|
||||||
|
// DropDownItems = new ISelectItem[]
|
||||||
|
// {
|
||||||
|
// new AntdUI.SelectItem(TState.Default),
|
||||||
|
// new AntdUI.SelectItem(TState.Primary),
|
||||||
|
// new AntdUI.SelectItem(TState.Success),
|
||||||
|
// new AntdUI.SelectItem(TState.Error),
|
||||||
|
// new AntdUI.SelectItem(TState.Warn),
|
||||||
|
// new AntdUI.SelectItem(TState.Processing),
|
||||||
|
|
||||||
|
// },
|
||||||
|
// DropDownValueChanged = (value) =>
|
||||||
|
// {
|
||||||
|
// string badge = value.ToString();
|
||||||
|
// //switch(badge) {
|
||||||
|
// //case "Default":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Default, badge); break;
|
||||||
|
// //case "Primary":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Primary, badge); break;
|
||||||
|
// //case "Success":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Success, badge); break;
|
||||||
|
// //case "Error":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Error, badge); break;
|
||||||
|
// //case "Warn":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Warn, badge); break;
|
||||||
|
// //case "Processing":
|
||||||
|
// // curUser.CellBadge = new CellBadge(TState.Processing, badge); break;
|
||||||
|
// //}
|
||||||
|
// }
|
||||||
|
//},
|
||||||
|
//new CellButton(Guid.NewGuid().ToString(),"删除",TTypeMini.Error),
|
||||||
|
//new CellButton(Guid.NewGuid().ToString(),"查看图片",TTypeMini.Primary)},
|
||||||
|
//value:0-1
|
||||||
|
// CellProgress = new CellProgress(0.5f),
|
||||||
|
// CellDivider = new CellDivider(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//设置树数据,可为任意行设置
|
||||||
|
|
||||||
|
// antList[1].Users = subUsers.ToArray();
|
||||||
|
// table_base.Binding(antList);
|
||||||
|
|
||||||
|
//设置行禁用
|
||||||
|
// table_base.SetRowEnable(0, false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/CameraConfigControl.resx
Normal file
120
DHSoftware/Views/CameraConfigControl.resx
Normal 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>
|
291
DHSoftware/Views/DetectConfigControl.Designer.cs
generated
Normal file
291
DHSoftware/Views/DetectConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
partial class DetectConfigControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
panel1 = new Panel();
|
||||||
|
label1 = new AntdUI.Label();
|
||||||
|
tbxPrePath = new TextBox();
|
||||||
|
btnPreOpen = new AntdUI.Button();
|
||||||
|
label5 = new AntdUI.Label();
|
||||||
|
comboBox1 = new ComboBox();
|
||||||
|
label6 = new AntdUI.Label();
|
||||||
|
textBox1 = new TextBox();
|
||||||
|
label8 = new AntdUI.Label();
|
||||||
|
switch1 = new AntdUI.Switch();
|
||||||
|
label7 = new AntdUI.Label();
|
||||||
|
switch2 = new AntdUI.Switch();
|
||||||
|
label9 = new AntdUI.Label();
|
||||||
|
switch3 = new AntdUI.Switch();
|
||||||
|
label10 = new AntdUI.Label();
|
||||||
|
switch4 = new AntdUI.Switch();
|
||||||
|
panel2 = new Panel();
|
||||||
|
label2 = new Label();
|
||||||
|
button2 = new AntdUI.Button();
|
||||||
|
table1 = new AntdUI.Table();
|
||||||
|
button1 = new AntdUI.Button();
|
||||||
|
button3 = new AntdUI.Button();
|
||||||
|
panel1.SuspendLayout();
|
||||||
|
panel2.SuspendLayout();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
panel1.Controls.Add(button3);
|
||||||
|
panel1.Controls.Add(panel2);
|
||||||
|
panel1.Controls.Add(label10);
|
||||||
|
panel1.Controls.Add(switch4);
|
||||||
|
panel1.Controls.Add(label9);
|
||||||
|
panel1.Controls.Add(switch3);
|
||||||
|
panel1.Controls.Add(label7);
|
||||||
|
panel1.Controls.Add(switch2);
|
||||||
|
panel1.Controls.Add(label8);
|
||||||
|
panel1.Controls.Add(switch1);
|
||||||
|
panel1.Controls.Add(textBox1);
|
||||||
|
panel1.Controls.Add(label6);
|
||||||
|
panel1.Controls.Add(comboBox1);
|
||||||
|
panel1.Controls.Add(label5);
|
||||||
|
panel1.Controls.Add(btnPreOpen);
|
||||||
|
panel1.Controls.Add(tbxPrePath);
|
||||||
|
panel1.Controls.Add(label1);
|
||||||
|
panel1.Dock = DockStyle.Fill;
|
||||||
|
panel1.Location = new Point(0, 0);
|
||||||
|
panel1.Name = "panel1";
|
||||||
|
panel1.Size = new Size(785, 445);
|
||||||
|
panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.Location = new Point(17, 41);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(73, 23);
|
||||||
|
label1.TabIndex = 9;
|
||||||
|
label1.Text = "模型路径";
|
||||||
|
//
|
||||||
|
// tbxPrePath
|
||||||
|
//
|
||||||
|
tbxPrePath.Location = new Point(96, 41);
|
||||||
|
tbxPrePath.Name = "tbxPrePath";
|
||||||
|
tbxPrePath.Size = new Size(498, 23);
|
||||||
|
tbxPrePath.TabIndex = 17;
|
||||||
|
//
|
||||||
|
// btnPreOpen
|
||||||
|
//
|
||||||
|
btnPreOpen.Location = new Point(613, 41);
|
||||||
|
btnPreOpen.Name = "btnPreOpen";
|
||||||
|
btnPreOpen.Size = new Size(46, 23);
|
||||||
|
btnPreOpen.TabIndex = 22;
|
||||||
|
btnPreOpen.Text = "...";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
label5.Location = new Point(333, 12);
|
||||||
|
label5.Name = "label5";
|
||||||
|
label5.Size = new Size(73, 23);
|
||||||
|
label5.TabIndex = 23;
|
||||||
|
label5.Text = "目标类型";
|
||||||
|
//
|
||||||
|
// comboBox1
|
||||||
|
//
|
||||||
|
comboBox1.FormattingEnabled = true;
|
||||||
|
comboBox1.Location = new Point(402, 10);
|
||||||
|
comboBox1.Name = "comboBox1";
|
||||||
|
comboBox1.Size = new Size(188, 25);
|
||||||
|
comboBox1.TabIndex = 24;
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
label6.Location = new Point(17, 12);
|
||||||
|
label6.Name = "label6";
|
||||||
|
label6.Size = new Size(58, 23);
|
||||||
|
label6.TabIndex = 25;
|
||||||
|
label6.Text = "检测名称";
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
textBox1.Location = new Point(96, 12);
|
||||||
|
textBox1.Name = "textBox1";
|
||||||
|
textBox1.Size = new Size(211, 23);
|
||||||
|
textBox1.TabIndex = 26;
|
||||||
|
//
|
||||||
|
// label8
|
||||||
|
//
|
||||||
|
label8.Location = new Point(17, 70);
|
||||||
|
label8.Name = "label8";
|
||||||
|
label8.Size = new Size(58, 23);
|
||||||
|
label8.TabIndex = 28;
|
||||||
|
label8.Text = "模型启用";
|
||||||
|
//
|
||||||
|
// switch1
|
||||||
|
//
|
||||||
|
switch1.Location = new Point(96, 70);
|
||||||
|
switch1.Name = "switch1";
|
||||||
|
switch1.Size = new Size(57, 23);
|
||||||
|
switch1.TabIndex = 27;
|
||||||
|
switch1.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label7
|
||||||
|
//
|
||||||
|
label7.Location = new Point(179, 70);
|
||||||
|
label7.Name = "label7";
|
||||||
|
label7.Size = new Size(58, 23);
|
||||||
|
label7.TabIndex = 30;
|
||||||
|
label7.Text = "数据保存";
|
||||||
|
//
|
||||||
|
// switch2
|
||||||
|
//
|
||||||
|
switch2.Location = new Point(258, 70);
|
||||||
|
switch2.Name = "switch2";
|
||||||
|
switch2.Size = new Size(57, 23);
|
||||||
|
switch2.TabIndex = 29;
|
||||||
|
switch2.Text = "switch2";
|
||||||
|
//
|
||||||
|
// label9
|
||||||
|
//
|
||||||
|
label9.Location = new Point(333, 70);
|
||||||
|
label9.Name = "label9";
|
||||||
|
label9.Size = new Size(73, 23);
|
||||||
|
label9.TabIndex = 32;
|
||||||
|
label9.Text = "保存OK原图";
|
||||||
|
//
|
||||||
|
// switch3
|
||||||
|
//
|
||||||
|
switch3.Location = new Point(412, 70);
|
||||||
|
switch3.Name = "switch3";
|
||||||
|
switch3.Size = new Size(57, 23);
|
||||||
|
switch3.TabIndex = 31;
|
||||||
|
switch3.Text = "switch3";
|
||||||
|
//
|
||||||
|
// label10
|
||||||
|
//
|
||||||
|
label10.Location = new Point(487, 70);
|
||||||
|
label10.Name = "label10";
|
||||||
|
label10.Size = new Size(73, 23);
|
||||||
|
label10.TabIndex = 34;
|
||||||
|
label10.Text = "保存NG原图";
|
||||||
|
//
|
||||||
|
// switch4
|
||||||
|
//
|
||||||
|
switch4.Location = new Point(566, 70);
|
||||||
|
switch4.Name = "switch4";
|
||||||
|
switch4.Size = new Size(57, 23);
|
||||||
|
switch4.TabIndex = 33;
|
||||||
|
switch4.Text = "switch4";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
panel2.Controls.Add(label2);
|
||||||
|
panel2.Controls.Add(button2);
|
||||||
|
panel2.Controls.Add(table1);
|
||||||
|
panel2.Controls.Add(button1);
|
||||||
|
panel2.Location = new Point(17, 141);
|
||||||
|
panel2.Name = "panel2";
|
||||||
|
panel2.Size = new Size(577, 286);
|
||||||
|
panel2.TabIndex = 35;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.Location = new Point(3, 5);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(56, 17);
|
||||||
|
label2.TabIndex = 25;
|
||||||
|
label2.Text = "模型参数";
|
||||||
|
//
|
||||||
|
// button2
|
||||||
|
//
|
||||||
|
button2.Location = new Point(93, 25);
|
||||||
|
button2.Name = "button2";
|
||||||
|
button2.Size = new Size(84, 34);
|
||||||
|
button2.TabIndex = 24;
|
||||||
|
button2.Text = "删除";
|
||||||
|
//
|
||||||
|
// table1
|
||||||
|
//
|
||||||
|
table1.Location = new Point(3, 65);
|
||||||
|
table1.Name = "table1";
|
||||||
|
table1.Size = new Size(570, 218);
|
||||||
|
table1.TabIndex = 22;
|
||||||
|
table1.Text = "table1";
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
button1.Location = new Point(3, 25);
|
||||||
|
button1.Name = "button1";
|
||||||
|
button1.Size = new Size(84, 34);
|
||||||
|
button1.TabIndex = 23;
|
||||||
|
button1.Text = "新增";
|
||||||
|
//
|
||||||
|
// button3
|
||||||
|
//
|
||||||
|
button3.Location = new Point(472, 101);
|
||||||
|
button3.Name = "button3";
|
||||||
|
button3.Size = new Size(118, 34);
|
||||||
|
button3.TabIndex = 37;
|
||||||
|
button3.Text = "查看文件夹";
|
||||||
|
//
|
||||||
|
// DetectConfigControl
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(panel1);
|
||||||
|
Name = "DetectConfigControl";
|
||||||
|
Size = new Size(785, 445);
|
||||||
|
panel1.ResumeLayout(false);
|
||||||
|
panel1.PerformLayout();
|
||||||
|
panel2.ResumeLayout(false);
|
||||||
|
panel2.PerformLayout();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Panel panel1;
|
||||||
|
private AntdUI.Label label1;
|
||||||
|
private TextBox tbxPrePath;
|
||||||
|
private TextBox textBox1;
|
||||||
|
private AntdUI.Label label6;
|
||||||
|
private ComboBox comboBox1;
|
||||||
|
private AntdUI.Label label5;
|
||||||
|
private AntdUI.Button btnPreOpen;
|
||||||
|
private AntdUI.Label label7;
|
||||||
|
private AntdUI.Switch switch2;
|
||||||
|
private AntdUI.Label label8;
|
||||||
|
private AntdUI.Switch switch1;
|
||||||
|
private AntdUI.Label label10;
|
||||||
|
private AntdUI.Switch switch4;
|
||||||
|
private AntdUI.Label label9;
|
||||||
|
private AntdUI.Switch switch3;
|
||||||
|
private Panel panel2;
|
||||||
|
private Label label2;
|
||||||
|
private AntdUI.Button button2;
|
||||||
|
private AntdUI.Table table1;
|
||||||
|
private AntdUI.Button button1;
|
||||||
|
private AntdUI.Button button3;
|
||||||
|
}
|
||||||
|
}
|
20
DHSoftware/Views/DetectConfigControl.cs
Normal file
20
DHSoftware/Views/DetectConfigControl.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
public partial class DetectConfigControl : UserControl
|
||||||
|
{
|
||||||
|
public DetectConfigControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/DetectConfigControl.resx
Normal file
120
DHSoftware/Views/DetectConfigControl.resx
Normal 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>
|
694
DHSoftware/Views/FloatButtonDemo.Designer.cs
generated
Normal file
694
DHSoftware/Views/FloatButtonDemo.Designer.cs
generated
Normal file
@ -0,0 +1,694 @@
|
|||||||
|
namespace AntdUIDemo.Views
|
||||||
|
{
|
||||||
|
partial class FloatButtonDemo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.header1 = new AntdUI.PageHeader();
|
||||||
|
this.stackPanel1 = new AntdUI.StackPanel();
|
||||||
|
this.stackPanel2 = new AntdUI.StackPanel();
|
||||||
|
this.buttonCZ = new AntdUI.Button();
|
||||||
|
this.buttonClose = new AntdUI.Button();
|
||||||
|
this.buttonOpen = new AntdUI.Button();
|
||||||
|
this.stackPanel8 = new AntdUI.StackPanel();
|
||||||
|
this.switch_enabled = new AntdUI.Switch();
|
||||||
|
this.label18 = new AntdUI.Label();
|
||||||
|
this.colorPicker = new AntdUI.ColorPicker();
|
||||||
|
this.label16 = new AntdUI.Label();
|
||||||
|
this.stackPanel6 = new AntdUI.StackPanel();
|
||||||
|
this.switch_loading = new AntdUI.Switch();
|
||||||
|
this.label2 = new AntdUI.Label();
|
||||||
|
this.input_badgesize = new AntdUI.InputNumber();
|
||||||
|
this.label15 = new AntdUI.Label();
|
||||||
|
this.input_badge = new AntdUI.Input();
|
||||||
|
this.label17 = new AntdUI.Label();
|
||||||
|
this.stackPanel5 = new AntdUI.StackPanel();
|
||||||
|
this.switch_round = new AntdUI.Switch();
|
||||||
|
this.label14 = new AntdUI.Label();
|
||||||
|
this.select_type = new AntdUI.Select();
|
||||||
|
this.label13 = new AntdUI.Label();
|
||||||
|
this.input_radius = new AntdUI.InputNumber();
|
||||||
|
this.label12 = new AntdUI.Label();
|
||||||
|
this.label11 = new AntdUI.Label();
|
||||||
|
this.stackPanel7 = new AntdUI.StackPanel();
|
||||||
|
this.input_gap = new AntdUI.InputNumber();
|
||||||
|
this.label20 = new AntdUI.Label();
|
||||||
|
this.stackPanel4 = new AntdUI.StackPanel();
|
||||||
|
this.switch_topmost = new AntdUI.Switch();
|
||||||
|
this.label6 = new AntdUI.Label();
|
||||||
|
this.input_my = new AntdUI.InputNumber();
|
||||||
|
this.label8 = new AntdUI.Label();
|
||||||
|
this.input_size = new AntdUI.InputNumber();
|
||||||
|
this.label9 = new AntdUI.Label();
|
||||||
|
this.stackPanel3 = new AntdUI.StackPanel();
|
||||||
|
this.switch_vertical = new AntdUI.Switch();
|
||||||
|
this.label5 = new AntdUI.Label();
|
||||||
|
this.input_mx = new AntdUI.InputNumber();
|
||||||
|
this.label7 = new AntdUI.Label();
|
||||||
|
this.select_align = new AntdUI.Select();
|
||||||
|
this.label10 = new AntdUI.Label();
|
||||||
|
this.label4 = new AntdUI.Label();
|
||||||
|
this.label3 = new AntdUI.Label();
|
||||||
|
this.stackPanel1.SuspendLayout();
|
||||||
|
this.stackPanel2.SuspendLayout();
|
||||||
|
this.stackPanel8.SuspendLayout();
|
||||||
|
this.stackPanel6.SuspendLayout();
|
||||||
|
this.stackPanel5.SuspendLayout();
|
||||||
|
this.stackPanel7.SuspendLayout();
|
||||||
|
this.stackPanel4.SuspendLayout();
|
||||||
|
this.stackPanel3.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// header1
|
||||||
|
//
|
||||||
|
this.header1.Description = "悬浮于页面上方的按钮。";
|
||||||
|
this.header1.DividerShow = true;
|
||||||
|
this.header1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.header1.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||||
|
this.header1.LocalizationDescription = "FloatButton.Description";
|
||||||
|
this.header1.LocalizationText = "FloatButton.Text";
|
||||||
|
this.header1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.header1.Name = "header1";
|
||||||
|
this.header1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 10);
|
||||||
|
this.header1.Size = new System.Drawing.Size(750, 74);
|
||||||
|
this.header1.TabIndex = 27;
|
||||||
|
this.header1.Text = "FloatButton 悬浮按钮";
|
||||||
|
this.header1.UseTitleFont = true;
|
||||||
|
//
|
||||||
|
// stackPanel1
|
||||||
|
//
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel2);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel8);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel6);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel5);
|
||||||
|
this.stackPanel1.Controls.Add(this.label11);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel7);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel4);
|
||||||
|
this.stackPanel1.Controls.Add(this.stackPanel3);
|
||||||
|
this.stackPanel1.Controls.Add(this.label4);
|
||||||
|
this.stackPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.stackPanel1.Location = new System.Drawing.Point(0, 104);
|
||||||
|
this.stackPanel1.Name = "stackPanel1";
|
||||||
|
this.stackPanel1.Size = new System.Drawing.Size(750, 388);
|
||||||
|
this.stackPanel1.TabIndex = 0;
|
||||||
|
this.stackPanel1.Text = "stackPanel1";
|
||||||
|
this.stackPanel1.Vertical = true;
|
||||||
|
//
|
||||||
|
// stackPanel2
|
||||||
|
//
|
||||||
|
this.stackPanel2.Controls.Add(this.buttonCZ);
|
||||||
|
this.stackPanel2.Controls.Add(this.buttonClose);
|
||||||
|
this.stackPanel2.Controls.Add(this.buttonOpen);
|
||||||
|
this.stackPanel2.Location = new System.Drawing.Point(3, 291);
|
||||||
|
this.stackPanel2.Name = "stackPanel2";
|
||||||
|
this.stackPanel2.Size = new System.Drawing.Size(744, 38);
|
||||||
|
this.stackPanel2.TabIndex = 28;
|
||||||
|
this.stackPanel2.Text = "stackPanel2";
|
||||||
|
//
|
||||||
|
// buttonCZ
|
||||||
|
//
|
||||||
|
this.buttonCZ.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.buttonCZ.LocalizationText = "reset";
|
||||||
|
this.buttonCZ.Location = new System.Drawing.Point(165, 3);
|
||||||
|
this.buttonCZ.Name = "buttonCZ";
|
||||||
|
this.buttonCZ.Size = new System.Drawing.Size(75, 32);
|
||||||
|
this.buttonCZ.TabIndex = 7;
|
||||||
|
this.buttonCZ.Text = "重 置";
|
||||||
|
this.buttonCZ.Type = AntdUI.TTypeMini.Warn;
|
||||||
|
this.buttonCZ.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// buttonClose
|
||||||
|
//
|
||||||
|
this.buttonClose.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.buttonClose.LocalizationText = "close";
|
||||||
|
this.buttonClose.Location = new System.Drawing.Point(84, 3);
|
||||||
|
this.buttonClose.Name = "buttonClose";
|
||||||
|
this.buttonClose.Size = new System.Drawing.Size(75, 32);
|
||||||
|
this.buttonClose.TabIndex = 6;
|
||||||
|
this.buttonClose.Text = "关 闭";
|
||||||
|
this.buttonClose.Type = AntdUI.TTypeMini.Error;
|
||||||
|
this.buttonClose.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// buttonOpen
|
||||||
|
//
|
||||||
|
this.buttonOpen.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.buttonOpen.LocalizationText = "open";
|
||||||
|
this.buttonOpen.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.buttonOpen.Name = "buttonOpen";
|
||||||
|
this.buttonOpen.Size = new System.Drawing.Size(75, 32);
|
||||||
|
this.buttonOpen.TabIndex = 5;
|
||||||
|
this.buttonOpen.Text = "打 开";
|
||||||
|
this.buttonOpen.Type = AntdUI.TTypeMini.Success;
|
||||||
|
this.buttonOpen.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// stackPanel8
|
||||||
|
//
|
||||||
|
this.stackPanel8.Controls.Add(this.switch_enabled);
|
||||||
|
this.stackPanel8.Controls.Add(this.label18);
|
||||||
|
this.stackPanel8.Controls.Add(this.colorPicker);
|
||||||
|
this.stackPanel8.Controls.Add(this.label16);
|
||||||
|
this.stackPanel8.Gap = 4;
|
||||||
|
this.stackPanel8.Location = new System.Drawing.Point(3, 253);
|
||||||
|
this.stackPanel8.Name = "stackPanel8";
|
||||||
|
this.stackPanel8.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel8.TabIndex = 27;
|
||||||
|
this.stackPanel8.Text = "stackPanel8";
|
||||||
|
//
|
||||||
|
// switch_enabled
|
||||||
|
//
|
||||||
|
this.switch_enabled.Location = new System.Drawing.Point(292, 3);
|
||||||
|
this.switch_enabled.Name = "switch_enabled";
|
||||||
|
this.switch_enabled.Size = new System.Drawing.Size(50, 26);
|
||||||
|
this.switch_enabled.TabIndex = 32;
|
||||||
|
this.switch_enabled.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label18
|
||||||
|
//
|
||||||
|
this.label18.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label18.Location = new System.Drawing.Point(190, 3);
|
||||||
|
this.label18.Name = "label18";
|
||||||
|
this.label18.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label18.TabIndex = 31;
|
||||||
|
this.label18.Text = "Enabled";
|
||||||
|
//
|
||||||
|
// colorPicker
|
||||||
|
//
|
||||||
|
this.colorPicker.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.colorPicker.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.colorPicker.Name = "colorPicker";
|
||||||
|
this.colorPicker.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.colorPicker.TabIndex = 30;
|
||||||
|
this.colorPicker.Text = "colorPicker1";
|
||||||
|
this.colorPicker.Value = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(119)))), ((int)(((byte)(255)))));
|
||||||
|
this.colorPicker.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label16
|
||||||
|
//
|
||||||
|
this.label16.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label16.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label16.Name = "label16";
|
||||||
|
this.label16.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label16.TabIndex = 29;
|
||||||
|
this.label16.Text = "BadgeBack";
|
||||||
|
//
|
||||||
|
// stackPanel6
|
||||||
|
//
|
||||||
|
this.stackPanel6.Controls.Add(this.switch_loading);
|
||||||
|
this.stackPanel6.Controls.Add(this.label2);
|
||||||
|
this.stackPanel6.Controls.Add(this.input_badgesize);
|
||||||
|
this.stackPanel6.Controls.Add(this.label15);
|
||||||
|
this.stackPanel6.Controls.Add(this.input_badge);
|
||||||
|
this.stackPanel6.Controls.Add(this.label17);
|
||||||
|
this.stackPanel6.Gap = 4;
|
||||||
|
this.stackPanel6.Location = new System.Drawing.Point(3, 215);
|
||||||
|
this.stackPanel6.Name = "stackPanel6";
|
||||||
|
this.stackPanel6.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel6.TabIndex = 25;
|
||||||
|
this.stackPanel6.Text = "stackPanel6";
|
||||||
|
//
|
||||||
|
// switch_loading
|
||||||
|
//
|
||||||
|
this.switch_loading.Location = new System.Drawing.Point(492, 3);
|
||||||
|
this.switch_loading.Name = "switch_loading";
|
||||||
|
this.switch_loading.Size = new System.Drawing.Size(50, 26);
|
||||||
|
this.switch_loading.TabIndex = 30;
|
||||||
|
this.switch_loading.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label2.Location = new System.Drawing.Point(390, 3);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label2.TabIndex = 29;
|
||||||
|
this.label2.Text = "Loading";
|
||||||
|
//
|
||||||
|
// input_badgesize
|
||||||
|
//
|
||||||
|
this.input_badgesize.DecimalPlaces = 1;
|
||||||
|
this.input_badgesize.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_badgesize.Increment = new decimal(new int[] {
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
65536});
|
||||||
|
this.input_badgesize.Location = new System.Drawing.Point(292, 3);
|
||||||
|
this.input_badgesize.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_badgesize.Name = "input_badgesize";
|
||||||
|
this.input_badgesize.Size = new System.Drawing.Size(88, 26);
|
||||||
|
this.input_badgesize.TabIndex = 13;
|
||||||
|
this.input_badgesize.Text = "0.6";
|
||||||
|
this.input_badgesize.Value = new decimal(new int[] {
|
||||||
|
6,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
65536});
|
||||||
|
this.input_badgesize.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label15
|
||||||
|
//
|
||||||
|
this.label15.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label15.Location = new System.Drawing.Point(190, 3);
|
||||||
|
this.label15.Name = "label15";
|
||||||
|
this.label15.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label15.TabIndex = 12;
|
||||||
|
this.label15.Text = "BadgeSize";
|
||||||
|
//
|
||||||
|
// input_badge
|
||||||
|
//
|
||||||
|
this.input_badge.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_badge.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.input_badge.Name = "input_badge";
|
||||||
|
this.input_badge.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.input_badge.TabIndex = 5;
|
||||||
|
this.input_badge.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label17
|
||||||
|
//
|
||||||
|
this.label17.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label17.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label17.Name = "label17";
|
||||||
|
this.label17.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label17.TabIndex = 4;
|
||||||
|
this.label17.Text = "Badge";
|
||||||
|
//
|
||||||
|
// stackPanel5
|
||||||
|
//
|
||||||
|
this.stackPanel5.Controls.Add(this.switch_round);
|
||||||
|
this.stackPanel5.Controls.Add(this.label14);
|
||||||
|
this.stackPanel5.Controls.Add(this.select_type);
|
||||||
|
this.stackPanel5.Controls.Add(this.label13);
|
||||||
|
this.stackPanel5.Controls.Add(this.input_radius);
|
||||||
|
this.stackPanel5.Controls.Add(this.label12);
|
||||||
|
this.stackPanel5.Gap = 4;
|
||||||
|
this.stackPanel5.Location = new System.Drawing.Point(3, 177);
|
||||||
|
this.stackPanel5.Name = "stackPanel5";
|
||||||
|
this.stackPanel5.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel5.TabIndex = 24;
|
||||||
|
this.stackPanel5.Text = "stackPanel5";
|
||||||
|
//
|
||||||
|
// switch_round
|
||||||
|
//
|
||||||
|
this.switch_round.Location = new System.Drawing.Point(492, 3);
|
||||||
|
this.switch_round.Name = "switch_round";
|
||||||
|
this.switch_round.Size = new System.Drawing.Size(50, 26);
|
||||||
|
this.switch_round.TabIndex = 24;
|
||||||
|
this.switch_round.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label14
|
||||||
|
//
|
||||||
|
this.label14.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label14.Location = new System.Drawing.Point(390, 3);
|
||||||
|
this.label14.Name = "label14";
|
||||||
|
this.label14.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label14.TabIndex = 23;
|
||||||
|
this.label14.Text = "Round";
|
||||||
|
//
|
||||||
|
// select_type
|
||||||
|
//
|
||||||
|
this.select_type.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.select_type.List = true;
|
||||||
|
this.select_type.Location = new System.Drawing.Point(292, 3);
|
||||||
|
this.select_type.Name = "select_type";
|
||||||
|
this.select_type.Size = new System.Drawing.Size(88, 26);
|
||||||
|
this.select_type.TabIndex = 22;
|
||||||
|
this.select_type.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label13
|
||||||
|
//
|
||||||
|
this.label13.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label13.Location = new System.Drawing.Point(190, 3);
|
||||||
|
this.label13.Name = "label13";
|
||||||
|
this.label13.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label13.TabIndex = 21;
|
||||||
|
this.label13.Text = "Type";
|
||||||
|
//
|
||||||
|
// input_radius
|
||||||
|
//
|
||||||
|
this.input_radius.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_radius.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.input_radius.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_radius.Name = "input_radius";
|
||||||
|
this.input_radius.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.input_radius.TabIndex = 18;
|
||||||
|
this.input_radius.Text = "6";
|
||||||
|
this.input_radius.Value = new decimal(new int[] {
|
||||||
|
6,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_radius.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label12
|
||||||
|
//
|
||||||
|
this.label12.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label12.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label12.Name = "label12";
|
||||||
|
this.label12.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label12.TabIndex = 17;
|
||||||
|
this.label12.Text = "Radius";
|
||||||
|
//
|
||||||
|
// label11
|
||||||
|
//
|
||||||
|
this.label11.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||||
|
this.label11.LocalizationText = "button_option";
|
||||||
|
this.label11.Location = new System.Drawing.Point(3, 147);
|
||||||
|
this.label11.Name = "label11";
|
||||||
|
this.label11.Size = new System.Drawing.Size(744, 24);
|
||||||
|
this.label11.TabIndex = 23;
|
||||||
|
this.label11.Text = "按钮配置";
|
||||||
|
//
|
||||||
|
// stackPanel7
|
||||||
|
//
|
||||||
|
this.stackPanel7.Controls.Add(this.input_gap);
|
||||||
|
this.stackPanel7.Controls.Add(this.label20);
|
||||||
|
this.stackPanel7.Gap = 4;
|
||||||
|
this.stackPanel7.Location = new System.Drawing.Point(3, 109);
|
||||||
|
this.stackPanel7.Name = "stackPanel7";
|
||||||
|
this.stackPanel7.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel7.TabIndex = 22;
|
||||||
|
this.stackPanel7.Text = "stackPanel7";
|
||||||
|
//
|
||||||
|
// input_gap
|
||||||
|
//
|
||||||
|
this.input_gap.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_gap.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.input_gap.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_gap.Name = "input_gap";
|
||||||
|
this.input_gap.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.input_gap.TabIndex = 5;
|
||||||
|
this.input_gap.Text = "40";
|
||||||
|
this.input_gap.Value = new decimal(new int[] {
|
||||||
|
40,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_gap.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label20
|
||||||
|
//
|
||||||
|
this.label20.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label20.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label20.Name = "label20";
|
||||||
|
this.label20.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label20.TabIndex = 4;
|
||||||
|
this.label20.Text = "Gap";
|
||||||
|
//
|
||||||
|
// stackPanel4
|
||||||
|
//
|
||||||
|
this.stackPanel4.Controls.Add(this.switch_topmost);
|
||||||
|
this.stackPanel4.Controls.Add(this.label6);
|
||||||
|
this.stackPanel4.Controls.Add(this.input_my);
|
||||||
|
this.stackPanel4.Controls.Add(this.label8);
|
||||||
|
this.stackPanel4.Controls.Add(this.input_size);
|
||||||
|
this.stackPanel4.Controls.Add(this.label9);
|
||||||
|
this.stackPanel4.Gap = 4;
|
||||||
|
this.stackPanel4.Location = new System.Drawing.Point(3, 71);
|
||||||
|
this.stackPanel4.Name = "stackPanel4";
|
||||||
|
this.stackPanel4.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel4.TabIndex = 17;
|
||||||
|
this.stackPanel4.Text = "stackPanel4";
|
||||||
|
//
|
||||||
|
// switch_topmost
|
||||||
|
//
|
||||||
|
this.switch_topmost.Checked = true;
|
||||||
|
this.switch_topmost.Location = new System.Drawing.Point(492, 3);
|
||||||
|
this.switch_topmost.Name = "switch_topmost";
|
||||||
|
this.switch_topmost.Size = new System.Drawing.Size(50, 26);
|
||||||
|
this.switch_topmost.TabIndex = 15;
|
||||||
|
this.switch_topmost.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
this.label6.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label6.Location = new System.Drawing.Point(390, 3);
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
this.label6.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label6.TabIndex = 14;
|
||||||
|
this.label6.Text = "TopMost";
|
||||||
|
//
|
||||||
|
// input_my
|
||||||
|
//
|
||||||
|
this.input_my.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_my.Location = new System.Drawing.Point(292, 3);
|
||||||
|
this.input_my.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_my.Name = "input_my";
|
||||||
|
this.input_my.Size = new System.Drawing.Size(88, 26);
|
||||||
|
this.input_my.TabIndex = 9;
|
||||||
|
this.input_my.Text = "24";
|
||||||
|
this.input_my.Value = new decimal(new int[] {
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_my.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label8
|
||||||
|
//
|
||||||
|
this.label8.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label8.Location = new System.Drawing.Point(190, 3);
|
||||||
|
this.label8.Name = "label8";
|
||||||
|
this.label8.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label8.TabIndex = 8;
|
||||||
|
this.label8.Text = "MarginY";
|
||||||
|
//
|
||||||
|
// input_size
|
||||||
|
//
|
||||||
|
this.input_size.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_size.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.input_size.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_size.Name = "input_size";
|
||||||
|
this.input_size.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.input_size.TabIndex = 5;
|
||||||
|
this.input_size.Text = "40";
|
||||||
|
this.input_size.Value = new decimal(new int[] {
|
||||||
|
40,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_size.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label9
|
||||||
|
//
|
||||||
|
this.label9.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label9.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label9.Name = "label9";
|
||||||
|
this.label9.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label9.TabIndex = 4;
|
||||||
|
this.label9.Text = "Size";
|
||||||
|
//
|
||||||
|
// stackPanel3
|
||||||
|
//
|
||||||
|
this.stackPanel3.Controls.Add(this.switch_vertical);
|
||||||
|
this.stackPanel3.Controls.Add(this.label5);
|
||||||
|
this.stackPanel3.Controls.Add(this.input_mx);
|
||||||
|
this.stackPanel3.Controls.Add(this.label7);
|
||||||
|
this.stackPanel3.Controls.Add(this.select_align);
|
||||||
|
this.stackPanel3.Controls.Add(this.label10);
|
||||||
|
this.stackPanel3.Gap = 4;
|
||||||
|
this.stackPanel3.Location = new System.Drawing.Point(3, 33);
|
||||||
|
this.stackPanel3.Name = "stackPanel3";
|
||||||
|
this.stackPanel3.Size = new System.Drawing.Size(744, 32);
|
||||||
|
this.stackPanel3.TabIndex = 16;
|
||||||
|
this.stackPanel3.Text = "stackPanel3";
|
||||||
|
//
|
||||||
|
// switch_vertical
|
||||||
|
//
|
||||||
|
this.switch_vertical.Checked = true;
|
||||||
|
this.switch_vertical.Location = new System.Drawing.Point(492, 3);
|
||||||
|
this.switch_vertical.Name = "switch_vertical";
|
||||||
|
this.switch_vertical.Size = new System.Drawing.Size(50, 26);
|
||||||
|
this.switch_vertical.TabIndex = 19;
|
||||||
|
this.switch_vertical.Text = "switch1";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label5.Location = new System.Drawing.Point(390, 3);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label5.TabIndex = 18;
|
||||||
|
this.label5.Text = "Vertical";
|
||||||
|
//
|
||||||
|
// input_mx
|
||||||
|
//
|
||||||
|
this.input_mx.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.input_mx.Location = new System.Drawing.Point(292, 3);
|
||||||
|
this.input_mx.Minimum = new decimal(new int[] {
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_mx.Name = "input_mx";
|
||||||
|
this.input_mx.Size = new System.Drawing.Size(88, 26);
|
||||||
|
this.input_mx.TabIndex = 17;
|
||||||
|
this.input_mx.Text = "24";
|
||||||
|
this.input_mx.Value = new decimal(new int[] {
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.input_mx.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label7
|
||||||
|
//
|
||||||
|
this.label7.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label7.Location = new System.Drawing.Point(190, 3);
|
||||||
|
this.label7.Name = "label7";
|
||||||
|
this.label7.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label7.TabIndex = 16;
|
||||||
|
this.label7.Text = "MarginX";
|
||||||
|
//
|
||||||
|
// select_align
|
||||||
|
//
|
||||||
|
this.select_align.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.select_align.List = true;
|
||||||
|
this.select_align.Location = new System.Drawing.Point(105, 3);
|
||||||
|
this.select_align.Name = "select_align";
|
||||||
|
this.select_align.Size = new System.Drawing.Size(75, 26);
|
||||||
|
this.select_align.TabIndex = 5;
|
||||||
|
this.select_align.WaveSize = 0;
|
||||||
|
//
|
||||||
|
// label10
|
||||||
|
//
|
||||||
|
this.label10.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.label10.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label10.Name = "label10";
|
||||||
|
this.label10.Size = new System.Drawing.Size(92, 26);
|
||||||
|
this.label10.TabIndex = 4;
|
||||||
|
this.label10.Text = "Align";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||||
|
this.label4.LocalizationText = "control_option";
|
||||||
|
this.label4.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(744, 24);
|
||||||
|
this.label4.TabIndex = 15;
|
||||||
|
this.label4.Text = "控件配置";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||||
|
this.label3.LocalizationText = "FloatButton.Tip";
|
||||||
|
this.label3.Location = new System.Drawing.Point(0, 74);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Padding = new System.Windows.Forms.Padding(0, 0, 0, 6);
|
||||||
|
this.label3.Size = new System.Drawing.Size(750, 30);
|
||||||
|
this.label3.TabIndex = 4;
|
||||||
|
this.label3.Text = "FloatButton没有工具箱控件,使用代码方式调用。";
|
||||||
|
//
|
||||||
|
// FloatButtonDemo
|
||||||
|
//
|
||||||
|
this.Controls.Add(this.stackPanel1);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.header1);
|
||||||
|
this.Name = "FloatButtonDemo";
|
||||||
|
this.Size = new System.Drawing.Size(750, 492);
|
||||||
|
this.stackPanel1.ResumeLayout(false);
|
||||||
|
this.stackPanel2.ResumeLayout(false);
|
||||||
|
this.stackPanel8.ResumeLayout(false);
|
||||||
|
this.stackPanel6.ResumeLayout(false);
|
||||||
|
this.stackPanel5.ResumeLayout(false);
|
||||||
|
this.stackPanel7.ResumeLayout(false);
|
||||||
|
this.stackPanel4.ResumeLayout(false);
|
||||||
|
this.stackPanel3.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.PageHeader header1;
|
||||||
|
private AntdUI.StackPanel stackPanel1;
|
||||||
|
private AntdUI.Label label3;
|
||||||
|
private AntdUI.StackPanel stackPanel4;
|
||||||
|
private AntdUI.InputNumber input_my;
|
||||||
|
private AntdUI.Label label8;
|
||||||
|
private AntdUI.InputNumber input_size;
|
||||||
|
private AntdUI.Label label9;
|
||||||
|
private AntdUI.StackPanel stackPanel3;
|
||||||
|
private AntdUI.Select select_align;
|
||||||
|
private AntdUI.Label label10;
|
||||||
|
private AntdUI.Label label4;
|
||||||
|
private AntdUI.StackPanel stackPanel6;
|
||||||
|
private AntdUI.InputNumber input_badgesize;
|
||||||
|
private AntdUI.Label label15;
|
||||||
|
private AntdUI.Input input_badge;
|
||||||
|
private AntdUI.Label label17;
|
||||||
|
private AntdUI.StackPanel stackPanel5;
|
||||||
|
private AntdUI.Label label11;
|
||||||
|
private AntdUI.StackPanel stackPanel7;
|
||||||
|
private AntdUI.InputNumber input_gap;
|
||||||
|
private AntdUI.Label label20;
|
||||||
|
private AntdUI.InputNumber input_radius;
|
||||||
|
private AntdUI.Label label12;
|
||||||
|
private AntdUI.Switch switch_topmost;
|
||||||
|
private AntdUI.Label label6;
|
||||||
|
private AntdUI.Switch switch_vertical;
|
||||||
|
private AntdUI.Label label5;
|
||||||
|
private AntdUI.InputNumber input_mx;
|
||||||
|
private AntdUI.Label label7;
|
||||||
|
private AntdUI.Switch switch_round;
|
||||||
|
private AntdUI.Label label14;
|
||||||
|
private AntdUI.Select select_type;
|
||||||
|
private AntdUI.Label label13;
|
||||||
|
private AntdUI.StackPanel stackPanel2;
|
||||||
|
private AntdUI.StackPanel stackPanel8;
|
||||||
|
private AntdUI.Switch switch_enabled;
|
||||||
|
private AntdUI.Label label18;
|
||||||
|
private AntdUI.ColorPicker colorPicker;
|
||||||
|
private AntdUI.Label label16;
|
||||||
|
private AntdUI.Switch switch_loading;
|
||||||
|
private AntdUI.Label label2;
|
||||||
|
private AntdUI.Button buttonCZ;
|
||||||
|
private AntdUI.Button buttonClose;
|
||||||
|
private AntdUI.Button buttonOpen;
|
||||||
|
}
|
||||||
|
}
|
241
DHSoftware/Views/FloatButtonDemo.cs
Normal file
241
DHSoftware/Views/FloatButtonDemo.cs
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
using AntdUI;
|
||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AntdUIDemo.Views
|
||||||
|
{
|
||||||
|
public partial class FloatButtonDemo : UserControl
|
||||||
|
{
|
||||||
|
private Window window;
|
||||||
|
private FormFloatButton floatButtonForm = null;
|
||||||
|
public FloatButtonDemo(Window _window)
|
||||||
|
{
|
||||||
|
window = _window;
|
||||||
|
InitializeComponent();
|
||||||
|
//初始化下拉框
|
||||||
|
InitSelectItems();
|
||||||
|
//设置默认值
|
||||||
|
InitData();
|
||||||
|
// 绑定事件
|
||||||
|
BindEventHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindEventHandler()
|
||||||
|
{
|
||||||
|
buttonOpen.Click += ButtonOpen_Click;
|
||||||
|
buttonClose.Click += buttonClose_Click;
|
||||||
|
buttonCZ.Click += buttonCZ_Click;
|
||||||
|
|
||||||
|
select_align.SelectedIndexChanged += select_intvalue_SelectedIndexChanged;
|
||||||
|
select_type.SelectedIndexChanged += select_intvalue_SelectedIndexChanged;
|
||||||
|
|
||||||
|
switch_round.CheckedChanged += Switch_CheckedChanged;
|
||||||
|
switch_vertical.CheckedChanged += Switch_CheckedChanged;
|
||||||
|
switch_topmost.CheckedChanged += Switch_CheckedChanged;
|
||||||
|
switch_enabled.CheckedChanged += Switch_CheckedChanged;
|
||||||
|
switch_loading.CheckedChanged += Switch_CheckedChanged;
|
||||||
|
|
||||||
|
input_size.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
input_mx.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
input_my.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
input_gap.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
input_radius.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
input_badgesize.ValueChanged += input_decimalvalue_ValeChanged;
|
||||||
|
|
||||||
|
input_badge.TextChanged += input_badge_TextChanged;
|
||||||
|
|
||||||
|
colorPicker.ValueChanged += colorPicker_ValueChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonOpen_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化下拉框
|
||||||
|
private void InitSelectItems()
|
||||||
|
{
|
||||||
|
//初始化方向
|
||||||
|
select_align.Items.Clear();
|
||||||
|
foreach (TAlign align in Enum.GetValues(typeof(TAlign)))
|
||||||
|
{
|
||||||
|
select_align.Items.Add(align);
|
||||||
|
}
|
||||||
|
//初始化类型
|
||||||
|
select_type.Items.Clear();
|
||||||
|
foreach (TTypeMini type in Enum.GetValues(typeof(TTypeMini)))
|
||||||
|
{
|
||||||
|
select_type.Items.Add(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置默认值
|
||||||
|
private void InitData()
|
||||||
|
{
|
||||||
|
select_align.SelectedIndex = 7;
|
||||||
|
select_type.SelectedIndex = 0;
|
||||||
|
|
||||||
|
switch_round.Checked = false;
|
||||||
|
switch_vertical.Checked = true;
|
||||||
|
switch_topmost.Checked = false;
|
||||||
|
switch_enabled.Checked = true;
|
||||||
|
switch_loading.Checked = false;
|
||||||
|
|
||||||
|
input_size.Value = 40;
|
||||||
|
input_mx.Value = 24;
|
||||||
|
input_my.Value = 24;
|
||||||
|
input_gap.Value = 40;
|
||||||
|
input_radius.Value = 6;
|
||||||
|
input_badge.Text = "";
|
||||||
|
input_badgesize.Value = 0.6m;
|
||||||
|
colorPicker.Value = Color.FromArgb(22, 119, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载浮动按钮
|
||||||
|
private void LoadFloatButton()
|
||||||
|
{
|
||||||
|
if (floatButtonForm == null)
|
||||||
|
{
|
||||||
|
floatButtonForm = FloatButton.open(new FloatButton.Config(window, new FloatButton.ConfigBtn[]
|
||||||
|
{
|
||||||
|
// 使用 svg 图片
|
||||||
|
// ConfigBtn第二个text参数默认设置为IconSvg,或者如下在配置里面设置IconSvg
|
||||||
|
new FloatButton.ConfigBtn("button1","",true)
|
||||||
|
{
|
||||||
|
// isSvg设置为true,text参数会赋值给IconSvg,否则赋值给Text,所以需要单独设置Text
|
||||||
|
Text = "SVG Picture",
|
||||||
|
IconSvg = "<svg viewBox=\"0 0 1024 1024\"><path d=\"M511.878001 1023.989c-62.999385 0-124.098788-11.699886-181.698225-34.999658-55.699456-22.49978-105.798967-54.499468-148.798547-95.599067-43.099579-40.9996-76.899249-88.899132-100.599018-142.198611-24.59976-55.29946-36.999639-114.098886-36.999639-174.698294 0-76.79925 20.699798-152.498511 59.899415-219.197859 37.799631-64.099374 92.299099-119.098837 157.498462-158.598451 14.699856-8.999912 33.899669-4.299958 42.899581 10.499897 8.999912 14.699856 4.299958 33.899669-10.499897 42.899581-56.399449 34.199666-103.498989 81.599203-136.19867 137.098661-33.599672 56.999443-51.1995 121.798811-51.1995 187.39817 0 102.498999 41.99959 199.098056 118.298845 271.697347 76.699251 73.099286 178.798254 113.298894 287.497192 113.298893s210.797941-40.299606 287.497193-113.298893c76.299255-72.799289 118.298845-169.198348 118.298844-271.797346 0-130.298728-68.699329-250.797551-183.798205-322.296852-14.599857-9.099911-19.099813-28.299724-9.999902-42.99958 9.099911-14.599857 28.299724-19.099813 42.99958-9.999903 64.099374 39.799611 117.498853 94.599076 154.59849 158.398453 38.399625 66.099354 58.699427 140.998623 58.699427 217.09788 0 60.599408-12.499878 119.398834-36.999639 174.698294-23.699769 53.299479-57.499438 101.199012-100.599017 142.198612-42.99958 40.899601-93.099091 73.099286-148.798547 95.599066-57.799436 23.099774-118.998838 34.79966-181.998223 34.79966zM511.878001 506.394055c-17.199832 0-31.199695-13.899864-31.199695-31.199696v-443.995664c0-17.199832 13.899864-31.199695 31.199695-31.199695 17.199832 0 31.199695 13.899864 31.199696 31.199695v443.895665c0.099999 17.199832-13.999863 31.299694-31.199696 31.299695z\"></path></svg>",
|
||||||
|
Tooltip = "SVG Button",
|
||||||
|
Round = switch_round.Checked,
|
||||||
|
Type = (TTypeMini)select_type.SelectedValue,
|
||||||
|
Radius = (int)input_radius.Value,
|
||||||
|
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||||
|
BadgeSize = (float)input_badgesize.Value,
|
||||||
|
BadgeBack = colorPicker.Value,
|
||||||
|
Enabled = switch_enabled.Checked,
|
||||||
|
Loading = switch_loading.Checked,
|
||||||
|
},
|
||||||
|
// 使用资源图片
|
||||||
|
new FloatButton.ConfigBtn("button2", DHSoftware.Properties.Resources.关闭)
|
||||||
|
{
|
||||||
|
Text = "Resource Picture",
|
||||||
|
Tooltip = "Resource Picture Button",
|
||||||
|
Round = switch_round.Checked,
|
||||||
|
Type = (TTypeMini)select_type.SelectedValue,
|
||||||
|
Radius = (int)input_radius.Value,
|
||||||
|
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||||
|
BadgeSize = (float)input_badgesize.Value,
|
||||||
|
BadgeBack = colorPicker.Value,
|
||||||
|
Enabled = switch_enabled.Checked,
|
||||||
|
Loading = switch_loading.Checked,
|
||||||
|
},
|
||||||
|
// 使用文本
|
||||||
|
new FloatButton.ConfigBtn("button3", "Text")
|
||||||
|
{
|
||||||
|
Tooltip = "Text Button",
|
||||||
|
Round = switch_round.Checked,
|
||||||
|
Type = (TTypeMini)select_type.SelectedValue,
|
||||||
|
Radius = (int)input_radius.Value,
|
||||||
|
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||||
|
BadgeSize = (float)input_badgesize.Value,
|
||||||
|
BadgeBack = colorPicker.Value,
|
||||||
|
Enabled = switch_enabled.Checked,
|
||||||
|
Loading = switch_loading.Checked,
|
||||||
|
},
|
||||||
|
//获取button示例,可以通过button的属性判断点击了哪个按钮,推荐用Name
|
||||||
|
}, button =>
|
||||||
|
{
|
||||||
|
//回调事件
|
||||||
|
AntdUI.Message.info(window, "Text:" + button.Text + ", Name:" + button.Name, autoClose: 3);
|
||||||
|
})
|
||||||
|
// 浮动全局配置
|
||||||
|
{
|
||||||
|
//字体
|
||||||
|
Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point),
|
||||||
|
//附着控件
|
||||||
|
Control = null,
|
||||||
|
//位置
|
||||||
|
Align = (TAlign)select_align.SelectedIndex,
|
||||||
|
//是否垂直方向
|
||||||
|
Vertical = switch_vertical.Checked,
|
||||||
|
//是否置顶
|
||||||
|
TopMost = switch_topmost.Checked,
|
||||||
|
//尺寸大小
|
||||||
|
Size = (int)input_size.Value,
|
||||||
|
//相对于Align位置X轴偏移
|
||||||
|
MarginX = (int)input_mx.Value,
|
||||||
|
//相对于Align位置Y轴偏移
|
||||||
|
MarginY = (int)input_my.Value,
|
||||||
|
//按钮间距
|
||||||
|
Gap = (int)input_gap.Value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加清理逻辑
|
||||||
|
public void CloseFloatButtonForm()
|
||||||
|
{
|
||||||
|
if (InvokeRequired)
|
||||||
|
{
|
||||||
|
Invoke(new Action(CloseFloatButtonForm));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Ensure that floatButtonForm is not null before attempting to close it
|
||||||
|
if (floatButtonForm != null)
|
||||||
|
{
|
||||||
|
floatButtonForm.Close();
|
||||||
|
floatButtonForm.Dispose();
|
||||||
|
floatButtonForm = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region EventHandler
|
||||||
|
private void select_intvalue_SelectedIndexChanged(object sender, IntEventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Switch_CheckedChanged(object sender, BoolEventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void colorPicker_ValueChanged(object sender, ColorEventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void input_badge_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void input_decimalvalue_ValeChanged(object sender, DecimalEventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置
|
||||||
|
private void buttonCZ_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
InitData();
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
LoadFloatButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
private void buttonClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CloseFloatButtonForm();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/FloatButtonDemo.resx
Normal file
120
DHSoftware/Views/FloatButtonDemo.resx
Normal 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>
|
207
DHSoftware/Views/PreTreatUserControl.Designer.cs
generated
Normal file
207
DHSoftware/Views/PreTreatUserControl.Designer.cs
generated
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
partial class PreTreatUserControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
btnPreOpen = new AntdUI.Button();
|
||||||
|
tbxPrePath = new TextBox();
|
||||||
|
label1 = new AntdUI.Label();
|
||||||
|
panel1 = new Panel();
|
||||||
|
table1 = new AntdUI.Table();
|
||||||
|
button1 = new AntdUI.Button();
|
||||||
|
button2 = new AntdUI.Button();
|
||||||
|
panel2 = new Panel();
|
||||||
|
label2 = new Label();
|
||||||
|
panel3 = new Panel();
|
||||||
|
label3 = new Label();
|
||||||
|
button3 = new AntdUI.Button();
|
||||||
|
table2 = new AntdUI.Table();
|
||||||
|
button4 = new AntdUI.Button();
|
||||||
|
panel1.SuspendLayout();
|
||||||
|
panel2.SuspendLayout();
|
||||||
|
panel3.SuspendLayout();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// btnPreOpen
|
||||||
|
//
|
||||||
|
btnPreOpen.Location = new Point(646, 17);
|
||||||
|
btnPreOpen.Name = "btnPreOpen";
|
||||||
|
btnPreOpen.Size = new Size(46, 23);
|
||||||
|
btnPreOpen.TabIndex = 21;
|
||||||
|
btnPreOpen.Text = "...";
|
||||||
|
//
|
||||||
|
// tbxPrePath
|
||||||
|
//
|
||||||
|
tbxPrePath.Location = new Point(91, 17);
|
||||||
|
tbxPrePath.Name = "tbxPrePath";
|
||||||
|
tbxPrePath.Size = new Size(549, 23);
|
||||||
|
tbxPrePath.TabIndex = 20;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.Location = new Point(12, 17);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(73, 23);
|
||||||
|
label1.TabIndex = 19;
|
||||||
|
label1.Text = "预处理路径";
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
panel1.Controls.Add(panel3);
|
||||||
|
panel1.Controls.Add(panel2);
|
||||||
|
panel1.Controls.Add(label1);
|
||||||
|
panel1.Controls.Add(btnPreOpen);
|
||||||
|
panel1.Controls.Add(tbxPrePath);
|
||||||
|
panel1.Dock = DockStyle.Fill;
|
||||||
|
panel1.Location = new Point(0, 0);
|
||||||
|
panel1.Name = "panel1";
|
||||||
|
panel1.Size = new Size(759, 243);
|
||||||
|
panel1.TabIndex = 22;
|
||||||
|
//
|
||||||
|
// table1
|
||||||
|
//
|
||||||
|
table1.Location = new Point(3, 65);
|
||||||
|
table1.Name = "table1";
|
||||||
|
table1.Size = new Size(258, 126);
|
||||||
|
table1.TabIndex = 22;
|
||||||
|
table1.Text = "table1";
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
button1.Location = new Point(3, 25);
|
||||||
|
button1.Name = "button1";
|
||||||
|
button1.Size = new Size(84, 34);
|
||||||
|
button1.TabIndex = 23;
|
||||||
|
button1.Text = "新增";
|
||||||
|
//
|
||||||
|
// button2
|
||||||
|
//
|
||||||
|
button2.Location = new Point(93, 25);
|
||||||
|
button2.Name = "button2";
|
||||||
|
button2.Size = new Size(84, 34);
|
||||||
|
button2.TabIndex = 24;
|
||||||
|
button2.Text = "删除";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
panel2.Controls.Add(label2);
|
||||||
|
panel2.Controls.Add(button2);
|
||||||
|
panel2.Controls.Add(table1);
|
||||||
|
panel2.Controls.Add(button1);
|
||||||
|
panel2.Location = new Point(91, 46);
|
||||||
|
panel2.Name = "panel2";
|
||||||
|
panel2.Size = new Size(264, 194);
|
||||||
|
panel2.TabIndex = 25;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.Location = new Point(3, 5);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(56, 17);
|
||||||
|
label2.TabIndex = 25;
|
||||||
|
label2.Text = "输入参数";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
panel3.Controls.Add(label3);
|
||||||
|
panel3.Controls.Add(button3);
|
||||||
|
panel3.Controls.Add(table2);
|
||||||
|
panel3.Controls.Add(button4);
|
||||||
|
panel3.Location = new Point(379, 46);
|
||||||
|
panel3.Name = "panel3";
|
||||||
|
panel3.Size = new Size(264, 194);
|
||||||
|
panel3.TabIndex = 26;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
label3.AutoSize = true;
|
||||||
|
label3.Location = new Point(3, 2);
|
||||||
|
label3.Name = "label3";
|
||||||
|
label3.Size = new Size(56, 17);
|
||||||
|
label3.TabIndex = 25;
|
||||||
|
label3.Text = "输出参数";
|
||||||
|
//
|
||||||
|
// button3
|
||||||
|
//
|
||||||
|
button3.Location = new Point(93, 25);
|
||||||
|
button3.Name = "button3";
|
||||||
|
button3.Size = new Size(84, 34);
|
||||||
|
button3.TabIndex = 24;
|
||||||
|
button3.Text = "删除";
|
||||||
|
//
|
||||||
|
// table2
|
||||||
|
//
|
||||||
|
table2.Location = new Point(3, 65);
|
||||||
|
table2.Name = "table2";
|
||||||
|
table2.Size = new Size(258, 126);
|
||||||
|
table2.TabIndex = 22;
|
||||||
|
table2.Text = "table2";
|
||||||
|
//
|
||||||
|
// button4
|
||||||
|
//
|
||||||
|
button4.Location = new Point(3, 25);
|
||||||
|
button4.Name = "button4";
|
||||||
|
button4.Size = new Size(84, 34);
|
||||||
|
button4.TabIndex = 23;
|
||||||
|
button4.Text = "新增";
|
||||||
|
//
|
||||||
|
// PreTreatUserControl
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(panel1);
|
||||||
|
Name = "PreTreatUserControl";
|
||||||
|
Size = new Size(759, 243);
|
||||||
|
panel1.ResumeLayout(false);
|
||||||
|
panel1.PerformLayout();
|
||||||
|
panel2.ResumeLayout(false);
|
||||||
|
panel2.PerformLayout();
|
||||||
|
panel3.ResumeLayout(false);
|
||||||
|
panel3.PerformLayout();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.Button btnPreOpen;
|
||||||
|
private TextBox tbxPrePath;
|
||||||
|
private AntdUI.Label label1;
|
||||||
|
private Panel panel1;
|
||||||
|
private AntdUI.Button button2;
|
||||||
|
private AntdUI.Button button1;
|
||||||
|
private AntdUI.Table table1;
|
||||||
|
private Panel panel2;
|
||||||
|
private Panel panel3;
|
||||||
|
private Label label3;
|
||||||
|
private AntdUI.Button button3;
|
||||||
|
private AntdUI.Table table2;
|
||||||
|
private AntdUI.Button button4;
|
||||||
|
private Label label2;
|
||||||
|
}
|
||||||
|
}
|
20
DHSoftware/Views/PreTreatUserControl.cs
Normal file
20
DHSoftware/Views/PreTreatUserControl.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
public partial class PreTreatUserControl : UserControl
|
||||||
|
{
|
||||||
|
public PreTreatUserControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/PreTreatUserControl.resx
Normal file
120
DHSoftware/Views/PreTreatUserControl.resx
Normal 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>
|
103
DHSoftware/Views/SizeConfigControl.Designer.cs
generated
Normal file
103
DHSoftware/Views/SizeConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
partial class SizeConfigControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
panel2 = new Panel();
|
||||||
|
label2 = new Label();
|
||||||
|
button2 = new AntdUI.Button();
|
||||||
|
table1 = new AntdUI.Table();
|
||||||
|
button1 = new AntdUI.Button();
|
||||||
|
panel2.SuspendLayout();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
panel2.Controls.Add(label2);
|
||||||
|
panel2.Controls.Add(button2);
|
||||||
|
panel2.Controls.Add(table1);
|
||||||
|
panel2.Controls.Add(button1);
|
||||||
|
panel2.Location = new Point(3, 3);
|
||||||
|
panel2.Name = "panel2";
|
||||||
|
panel2.Size = new Size(779, 286);
|
||||||
|
panel2.TabIndex = 36;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.Location = new Point(3, 5);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(56, 17);
|
||||||
|
label2.TabIndex = 25;
|
||||||
|
label2.Text = "模型参数";
|
||||||
|
//
|
||||||
|
// button2
|
||||||
|
//
|
||||||
|
button2.Location = new Point(93, 25);
|
||||||
|
button2.Name = "button2";
|
||||||
|
button2.Size = new Size(84, 34);
|
||||||
|
button2.TabIndex = 24;
|
||||||
|
button2.Text = "删除";
|
||||||
|
//
|
||||||
|
// table1
|
||||||
|
//
|
||||||
|
table1.Location = new Point(3, 65);
|
||||||
|
table1.Name = "table1";
|
||||||
|
table1.Size = new Size(773, 218);
|
||||||
|
table1.TabIndex = 22;
|
||||||
|
table1.Text = "table1";
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
button1.Location = new Point(3, 25);
|
||||||
|
button1.Name = "button1";
|
||||||
|
button1.Size = new Size(84, 34);
|
||||||
|
button1.TabIndex = 23;
|
||||||
|
button1.Text = "新增";
|
||||||
|
//
|
||||||
|
// SizeConfigControl
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(panel2);
|
||||||
|
Name = "SizeConfigControl";
|
||||||
|
Size = new Size(785, 292);
|
||||||
|
panel2.ResumeLayout(false);
|
||||||
|
panel2.PerformLayout();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Panel panel2;
|
||||||
|
private Label label2;
|
||||||
|
private AntdUI.Button button2;
|
||||||
|
private AntdUI.Table table1;
|
||||||
|
private AntdUI.Button button1;
|
||||||
|
}
|
||||||
|
}
|
20
DHSoftware/Views/SizeConfigControl.cs
Normal file
20
DHSoftware/Views/SizeConfigControl.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
public partial class SizeConfigControl : UserControl
|
||||||
|
{
|
||||||
|
public SizeConfigControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/SizeConfigControl.resx
Normal file
120
DHSoftware/Views/SizeConfigControl.resx
Normal 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>
|
59
DHSoftware/Views/UserConfigFrm.Designer.cs
generated
59
DHSoftware/Views/UserConfigFrm.Designer.cs
generated
@ -28,17 +28,76 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
AntdUI.Tabs.StyleCard styleCard1 = new AntdUI.Tabs.StyleCard();
|
||||||
|
menu = new AntdUI.Menu();
|
||||||
|
UCFpanel1 = new Panel();
|
||||||
|
panel1 = new Panel();
|
||||||
|
tabs = new AntdUI.Tabs();
|
||||||
|
UCFpanel1.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
|
// menu
|
||||||
|
//
|
||||||
|
menu.Dock = DockStyle.Left;
|
||||||
|
menu.Location = new Point(0, 0);
|
||||||
|
menu.Name = "menu";
|
||||||
|
menu.Size = new Size(127, 536);
|
||||||
|
menu.TabIndex = 8;
|
||||||
|
menu.Text = "menu1";
|
||||||
|
menu.SelectChanged += Menu_SelectChanged;
|
||||||
|
//
|
||||||
|
// UCFpanel1
|
||||||
|
//
|
||||||
|
UCFpanel1.AutoSize = true;
|
||||||
|
UCFpanel1.Controls.Add(panel1);
|
||||||
|
UCFpanel1.Controls.Add(tabs);
|
||||||
|
UCFpanel1.Controls.Add(menu);
|
||||||
|
UCFpanel1.Dock = DockStyle.Fill;
|
||||||
|
UCFpanel1.Location = new Point(0, 0);
|
||||||
|
UCFpanel1.Name = "UCFpanel1";
|
||||||
|
UCFpanel1.Size = new Size(749, 536);
|
||||||
|
UCFpanel1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
panel1.BackColor = SystemColors.Highlight;
|
||||||
|
panel1.Dock = DockStyle.Left;
|
||||||
|
panel1.Location = new Point(127, 0);
|
||||||
|
panel1.Name = "panel1";
|
||||||
|
panel1.Size = new Size(5, 536);
|
||||||
|
panel1.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// tabs
|
||||||
|
//
|
||||||
|
tabs.Dock = DockStyle.Fill;
|
||||||
|
tabs.ForeColor = SystemColors.Control;
|
||||||
|
tabs.Location = new Point(127, 0);
|
||||||
|
tabs.Name = "tabs";
|
||||||
|
tabs.Size = new Size(622, 536);
|
||||||
|
tabs.Style = styleCard1;
|
||||||
|
tabs.TabIndex = 9;
|
||||||
|
tabs.Text = "tabs1";
|
||||||
|
tabs.Type = AntdUI.TabType.Card;
|
||||||
|
tabs.SelectedIndexChanged += tabs_SelectedIndexChanged;
|
||||||
|
//
|
||||||
// UserConfigFrm
|
// UserConfigFrm
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
AutoSize = true;
|
||||||
|
Controls.Add(UCFpanel1);
|
||||||
Name = "UserConfigFrm";
|
Name = "UserConfigFrm";
|
||||||
Size = new Size(749, 536);
|
Size = new Size(749, 536);
|
||||||
|
UCFpanel1.ResumeLayout(false);
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.Menu menu;
|
||||||
|
private Panel UCFpanel1;
|
||||||
|
private AntdUI.Tabs tabs;
|
||||||
|
private Panel panel1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
using System;
|
using AntdUI;
|
||||||
|
using AntdUIDemo.Models;
|
||||||
|
using AntdUIDemo.Views;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -7,14 +10,157 @@ 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 static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||||
|
|
||||||
namespace DHSoftware.Views
|
namespace DHSoftware.Views
|
||||||
{
|
{
|
||||||
public partial class UserConfigFrm : UserControl
|
public partial class UserConfigFrm : UserControl
|
||||||
{
|
{
|
||||||
|
private UserControl currControl;
|
||||||
|
private bool isUpdatingTabs = false;//用于阻止Tabs更新
|
||||||
public UserConfigFrm()
|
public UserConfigFrm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
LoadMenu();
|
||||||
|
menu.Width = (int)(100 * Config.Dpi);
|
||||||
|
|
||||||
|
}
|
||||||
|
private void LoadMenu(string filter = "")
|
||||||
|
{
|
||||||
|
menu.Items.Clear();
|
||||||
|
|
||||||
|
string lang = AntdUI.Localization.CurrentLanguage;
|
||||||
|
var menuItems = DataUtil.Menu_decetion;
|
||||||
|
//var menuIcons = DataUtil.MenuIcons_zhcn;
|
||||||
|
//if (lang.StartsWith("en"))
|
||||||
|
//{
|
||||||
|
// menuItems = DataUtil.MenuItems_enus;
|
||||||
|
// menuIcons = DataUtil.MenuIcons_enus;
|
||||||
|
//}
|
||||||
|
|
||||||
|
foreach (var rootItem in menuItems)
|
||||||
|
{
|
||||||
|
var rootKey = rootItem.Key.ToLower();
|
||||||
|
var rootMenu = new AntdUI.MenuItem
|
||||||
|
{
|
||||||
|
Text = rootItem.Key,
|
||||||
|
//IconSvg = menuIcons.TryGetValue(rootItem.Key, out var icon) ? icon : "UnorderedListOutlined",
|
||||||
|
};
|
||||||
|
bool rootVisible = false; // 用于标记是否显示根节点
|
||||||
|
|
||||||
|
foreach (var item in rootItem.Value)
|
||||||
|
{
|
||||||
|
var childText = item.Text.ToLower();
|
||||||
|
|
||||||
|
// 如果子节点包含搜索文本
|
||||||
|
if (childText.Contains(filter))
|
||||||
|
{
|
||||||
|
var menuItem = new AntdUI.MenuItem
|
||||||
|
{
|
||||||
|
Text = item.Text,
|
||||||
|
IconSvg = item.IconSvg,
|
||||||
|
Tag = item.Tag,
|
||||||
|
};
|
||||||
|
rootMenu.Sub.Add(menuItem);
|
||||||
|
rootVisible = true; // 如果有子节点包含,则显示根节点
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果根节点包含搜索文本,或有可见的子节点,则显示根节点
|
||||||
|
if (rootKey.Contains(filter) || rootVisible)
|
||||||
|
{
|
||||||
|
menu.Items.Add(rootMenu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void SelectMenu()
|
||||||
|
{
|
||||||
|
if (isUpdatingTabs) return;
|
||||||
|
var text = tabs.SelectedTab?.Text; // 使用安全导航操作符,防止 SelectedTab 为 null
|
||||||
|
if (string.IsNullOrEmpty(text)) // 检查 text 是否为 null 或空
|
||||||
|
{
|
||||||
|
return; // 如果 text 为空,直接退出方法
|
||||||
|
}
|
||||||
|
//首页
|
||||||
|
if (text == AntdUI.Localization.Get("home", "主页"))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var rootIndex = 0;
|
||||||
|
var subIndex = 0;
|
||||||
|
var menuItemsCopy = menu.Items.ToList(); // 创建副本
|
||||||
|
for (int i = 0; i < menuItemsCopy.Count; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < menuItemsCopy[i].Sub.Count; j++)
|
||||||
|
{
|
||||||
|
if (menuItemsCopy[i].Sub[j].Tag.ToString() == text)
|
||||||
|
{
|
||||||
|
rootIndex = i;
|
||||||
|
subIndex = j;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menu.SelectIndex(rootIndex, subIndex, true);
|
||||||
|
}
|
||||||
|
private void Menu_SelectChanged(object sender, MenuSelectEventArgs e)
|
||||||
|
{
|
||||||
|
string name = (string)e.Value.Tag;
|
||||||
|
|
||||||
|
// 清理上一个浮动按钮窗体
|
||||||
|
if (currControl is FloatButtonDemo floatButtonDemo)
|
||||||
|
{
|
||||||
|
floatButtonDemo.CloseFloatButtonForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否已存在同名 TabPage
|
||||||
|
foreach (var tab in tabs.Pages)
|
||||||
|
{
|
||||||
|
if (tab is AntdUI.TabPage existingTab && existingTab.Text == name)
|
||||||
|
{
|
||||||
|
isUpdatingTabs = true;
|
||||||
|
tabs.SelectedTab = existingTab;
|
||||||
|
isUpdatingTabs = false;
|
||||||
|
currControl = existingTab.Controls.Count > 0 ? existingTab.Controls[0] as UserControl : null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int width = tabs.Width;
|
||||||
|
int height = tabs.Height;
|
||||||
|
// 创建新 TabPage
|
||||||
|
UserControl control =new UserDetetion(width, height);
|
||||||
|
switch (name)
|
||||||
|
{
|
||||||
|
case "工位1":
|
||||||
|
// control =
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (control != null)
|
||||||
|
{
|
||||||
|
control.Dock = DockStyle.Fill;
|
||||||
|
// AutoDpi(control); // 如果有 DPI 适配逻辑
|
||||||
|
|
||||||
|
var tabPage = new AntdUI.TabPage
|
||||||
|
{
|
||||||
|
Dock = DockStyle.Fill,
|
||||||
|
Text = name,
|
||||||
|
};
|
||||||
|
tabPage.Controls.Add(control);
|
||||||
|
tabs.Pages.Add(tabPage);
|
||||||
|
|
||||||
|
isUpdatingTabs = true;
|
||||||
|
tabs.SelectedTab = tabPage;
|
||||||
|
isUpdatingTabs = false;
|
||||||
|
currControl = control;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void tabs_SelectedIndexChanged(object sender, IntEventArgs e)
|
||||||
|
{
|
||||||
|
SelectMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
69
DHSoftware/Views/UserDetetion.Designer.cs
generated
Normal file
69
DHSoftware/Views/UserDetetion.Designer.cs
generated
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
partial class UserDetetion
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
collapse1 = new AntdUI.Collapse();
|
||||||
|
panel1 = new Panel();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// collapse1
|
||||||
|
//
|
||||||
|
collapse1.Dock = DockStyle.Fill;
|
||||||
|
collapse1.Location = new Point(0, 0);
|
||||||
|
collapse1.Name = "collapse1";
|
||||||
|
collapse1.Size = new Size(842, 568);
|
||||||
|
collapse1.TabIndex = 0;
|
||||||
|
collapse1.Text = "collapse1";
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
panel1.BackColor = SystemColors.GradientActiveCaption;
|
||||||
|
panel1.Dock = DockStyle.Left;
|
||||||
|
panel1.Location = new Point(0, 0);
|
||||||
|
panel1.Name = "panel1";
|
||||||
|
panel1.Size = new Size(2, 568);
|
||||||
|
panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// UserDetetion
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
Controls.Add(panel1);
|
||||||
|
Controls.Add(collapse1);
|
||||||
|
Name = "UserDetetion";
|
||||||
|
Size = new Size(842, 568);
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private AntdUI.Collapse collapse1;
|
||||||
|
private Panel panel1;
|
||||||
|
}
|
||||||
|
}
|
88
DHSoftware/Views/UserDetetion.cs
Normal file
88
DHSoftware/Views/UserDetetion.cs
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
using AntdUI;
|
||||||
|
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;
|
||||||
|
|
||||||
|
namespace DHSoftware.Views
|
||||||
|
{
|
||||||
|
public partial class UserDetetion : UserControl
|
||||||
|
{
|
||||||
|
//根据检测配置 将对应的相机配置、中处理预处理、尺寸测量
|
||||||
|
public UserDetetion(int parentWidth, int parentHeight)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
AntdUI.CollapseItem group1 = new CollapseItem();
|
||||||
|
group1.Height = parentHeight / 3;
|
||||||
|
group1.Text = "相机配置";
|
||||||
|
AntdUI.CollapseItem group2 = new CollapseItem();
|
||||||
|
group2.Text = "预处理中处理";
|
||||||
|
group2.Height = parentHeight -300;
|
||||||
|
AntdUI.CollapseItem group3 = new CollapseItem();
|
||||||
|
group3.Text = "尺寸测量";
|
||||||
|
group3.Height = parentHeight/3;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 父容器(如 Panel)设置自动滚动
|
||||||
|
System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel
|
||||||
|
{
|
||||||
|
Dock = DockStyle.Fill,
|
||||||
|
AutoScroll = true // 关键:启用滚动条
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 父容器(如 Panel)设置自动滚动
|
||||||
|
System.Windows.Forms.FlowLayoutPanel panel2 = new System.Windows.Forms.FlowLayoutPanel
|
||||||
|
{
|
||||||
|
Dock = DockStyle.Fill,
|
||||||
|
AutoScroll = true // 关键:启用滚动条
|
||||||
|
};
|
||||||
|
|
||||||
|
// 父容器(如 Panel)设置自动滚动
|
||||||
|
System.Windows.Forms.Panel panel3 = new System.Windows.Forms.Panel
|
||||||
|
{
|
||||||
|
Dock = DockStyle.Fill,
|
||||||
|
AutoScroll = true // 关键:启用滚动条
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
CameraConfigControl camConfigFrm = new CameraConfigControl();
|
||||||
|
camConfigFrm.Dock = DockStyle.Fill;
|
||||||
|
panel.Controls.Add(camConfigFrm);
|
||||||
|
|
||||||
|
PreTreatUserControl ptuc = new PreTreatUserControl();
|
||||||
|
ptuc.AutoScroll = true;
|
||||||
|
panel2.Controls.Add(ptuc);
|
||||||
|
DetectConfigControl detect = new DetectConfigControl();
|
||||||
|
// detect.Dock = DockStyle.Fill;
|
||||||
|
detect.AutoScroll = true;
|
||||||
|
panel2.Controls.Add(detect);
|
||||||
|
|
||||||
|
|
||||||
|
SizeConfigControl Sizefc = new SizeConfigControl();
|
||||||
|
Sizefc.Dock = DockStyle.Fill;
|
||||||
|
panel3.Controls.Add(Sizefc);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
group1.Controls.Add(panel);
|
||||||
|
group2.Controls.Add(panel2);
|
||||||
|
group3.Controls.Add(panel3);
|
||||||
|
|
||||||
|
|
||||||
|
//collapse1.Items.Add(group1);
|
||||||
|
collapse1.Items.Add(group1);
|
||||||
|
collapse1.Items.Add(group2);
|
||||||
|
collapse1.Items.Add(group3);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
DHSoftware/Views/UserDetetion.resx
Normal file
120
DHSoftware/Views/UserDetetion.resx
Normal 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>
|
Loading…
x
Reference in New Issue
Block a user