227 lines
7.2 KiB
C#
227 lines
7.2 KiB
C#
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;
|
||
using Button = AntdUI.Button;
|
||
|
||
namespace DHSoftware.Views
|
||
{
|
||
public partial class UserDetetion : UserControl
|
||
{
|
||
private StackPanel panel, panel2, panel3, panel4;
|
||
public Window _windows;
|
||
//根据检测配置 将对应的相机配置、中处理预处理、尺寸测量
|
||
public UserDetetion(Window windows,int parentWidth, int parentHeight)
|
||
{
|
||
InitializeComponent();
|
||
_windows = windows;
|
||
AntdUI.CollapseItem group1 = new CollapseItem();
|
||
group1.Height = parentHeight / 4;
|
||
group1.Text = "相机配置";
|
||
AntdUI.CollapseItem group2 = new CollapseItem();
|
||
group2.Text = "预处理";
|
||
group2.Height = parentHeight/4;
|
||
|
||
AntdUI.CollapseItem group3 = new CollapseItem();
|
||
group3.Text = "中处理";
|
||
group3.Height = parentHeight - 300;
|
||
|
||
AntdUI.CollapseItem group4 = new CollapseItem();
|
||
group4.Text = "尺寸测量";
|
||
group4.Height = parentHeight / 4;
|
||
|
||
|
||
// 初始化内容面板
|
||
panel = CreateScrollPanel();
|
||
panel2 = CreateScrollPanel();
|
||
panel3 = CreateScrollPanel();
|
||
panel4 = CreateScrollPanel();
|
||
|
||
// 添加预处理控件
|
||
var ptuc = new PreTreatUserControl { AutoScroll = true, Dock = DockStyle.Top };
|
||
var detect = new DetectConfigControl { AutoScroll = true , Dock = DockStyle.Fill };
|
||
detect._window = this._windows;
|
||
|
||
// 添加尺寸测量控件
|
||
var sizeFrm = new SizeConfigControl();
|
||
|
||
|
||
CameraConfigControl camConfigFrm = new CameraConfigControl();
|
||
camConfigFrm.Dock = DockStyle.Fill;
|
||
|
||
|
||
|
||
//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);
|
||
|
||
|
||
|
||
Button btnAddCam = new Button
|
||
{
|
||
Width = 100,
|
||
Height = 30,
|
||
Text = "添加相机配置",
|
||
//Dock=DockStyle.Bottom
|
||
};
|
||
Button btnDelCam = new Button
|
||
{
|
||
Width = 100,
|
||
Height = 30,
|
||
Text = "删除相机配置",
|
||
// Dock = DockStyle.Bottom
|
||
};
|
||
|
||
|
||
Button btnAddModel = new Button
|
||
{
|
||
Width = 100,
|
||
Height = 30,
|
||
Text = "添加模型配置",
|
||
//Dock=DockStyle.Bottom
|
||
};
|
||
Button btnDelModel = new Button
|
||
{
|
||
Width = 100,
|
||
Height = 30,
|
||
Text = "删除模型配置",
|
||
// Dock = DockStyle.Bottom
|
||
};
|
||
|
||
FlowLayoutPanel flow = new FlowLayoutPanel();
|
||
flow.Dock = DockStyle.Bottom;
|
||
flow.Controls.Add(btnAddCam);
|
||
flow.Controls.Add(btnDelCam);
|
||
|
||
FlowLayoutPanel flowmodel = new FlowLayoutPanel();
|
||
flowmodel.Dock = DockStyle.Bottom;
|
||
flowmodel.Controls.Add(btnAddModel);
|
||
flowmodel.Controls.Add(btnDelModel);
|
||
btnAddCam.Click += btnAddCam_Click;
|
||
btnDelCam.Click += btnDelCam_Click;
|
||
btnAddModel.Click += btnAddModel_Click;
|
||
btnDelModel.Click += btnDelModel_Click;
|
||
|
||
panel.Controls.Add(flow);
|
||
panel.Controls.Add(camConfigFrm);
|
||
|
||
panel2.Controls.Add(ptuc);
|
||
panel3.Controls.Add(flowmodel);
|
||
panel3.Controls.Add(detect);
|
||
panel4.Controls.Add(sizeFrm);
|
||
group1.Controls.Add(panel);
|
||
group2.Controls.Add(panel2);
|
||
group3.Controls.Add(panel3);
|
||
group4.Controls.Add(panel4);
|
||
|
||
|
||
//collapse1.Items.Add(group1);
|
||
collapse1.Items.Add(group1);
|
||
collapse1.Items.Add(group2);
|
||
collapse1.Items.Add(group3);
|
||
collapse1.Items.Add(group4);
|
||
|
||
|
||
}
|
||
|
||
// 统一事件处理
|
||
private void CameraOperation_Click(object sender, EventArgs e)
|
||
{
|
||
if (sender is Button btn)
|
||
{
|
||
switch (btn.Tag?.ToString())
|
||
{
|
||
case "Add":
|
||
AddCameraConfig();
|
||
break;
|
||
case "Delete":
|
||
DeleteCameraConfig();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 实际业务方法
|
||
private void AddCameraConfig()
|
||
{
|
||
var newCamConfig = new CameraConfigControl { Dock = DockStyle.Top };
|
||
panel.Controls.Add(newCamConfig);
|
||
panel.ScrollControlIntoView(newCamConfig);
|
||
}
|
||
|
||
private void DeleteCameraConfig()
|
||
{
|
||
if (panel.Controls.Count > 1)
|
||
{
|
||
panel.Controls.RemoveAt(panel.Controls.Count - 2);
|
||
}
|
||
}
|
||
// 创建带滚动条的面板
|
||
private StackPanel CreateScrollPanel()
|
||
{
|
||
return new StackPanel
|
||
{
|
||
Dock = DockStyle.Fill,
|
||
Vertical = true,
|
||
AutoScroll = true,
|
||
Padding = new Padding(5) // 添加内边距避免内容贴边
|
||
};
|
||
}
|
||
|
||
private void btnAddCam_Click(object sender, EventArgs e)
|
||
{
|
||
CameraConfigControl camConfigFrm2 = new CameraConfigControl();
|
||
camConfigFrm2.Dock = DockStyle.Fill;
|
||
|
||
panel.Controls.Add(camConfigFrm2);
|
||
}
|
||
private void btnDelCam_Click(object sender, EventArgs e)
|
||
{
|
||
// 遍历 panel 的 Controls,找到最后一个 CameraConfigControl 并移除
|
||
for (int i = panel.Controls.Count - 1; i >= 0; i--)
|
||
{
|
||
if (panel.Controls[i] is CameraConfigControl)
|
||
{
|
||
panel.Controls.RemoveAt(i);
|
||
break; // 只删除一个
|
||
}
|
||
}
|
||
}
|
||
private void btnAddModel_Click(object sender, EventArgs e)
|
||
{
|
||
DetectConfigControl DetectFrm = new DetectConfigControl();
|
||
DetectFrm._window = this._windows;
|
||
DetectFrm.Dock = DockStyle.Fill;
|
||
|
||
panel3.Controls.Add(DetectFrm);
|
||
}
|
||
private void btnDelModel_Click(object sender, EventArgs e)
|
||
{
|
||
// 遍历 panel 的 Controls,找到最后一个 CameraConfigControl 并移除
|
||
for (int i = panel3.Controls.Count - 1; i >= 0; i--)
|
||
{
|
||
if (panel3.Controls[i] is DetectConfigControl)
|
||
{
|
||
panel3.Controls.RemoveAt(i);
|
||
break; // 只删除一个
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|