界面:
代码:
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 WindowsFormsApp1
{
public partial class CameraControl : UserControl
{
public CameraControl(string CameraName)
{
InitializeComponent();
this.Dock = DockStyle.Fill; //停靠方式--填充满
this.label1.Text = CameraName;
}
//打开相机后按钮置灰
private void button1_Click(object sender, EventArgs e)
{
this.button1.Enabled = false;
this.button2.Enabled = true;
this.button3.Enabled = true;
this.button4.Enabled = true;
}
//关闭相机后按钮置灰
private void button4_Click(object sender, EventArgs e)
{
this.button1.Enabled = true;
this.button2.Enabled = false;
this.button3.Enabled = false;
this.button4.Enabled = false;
}
//隐藏按钮方法
public void HideButton(bool istrue)
{
if (istrue) //隐藏
{
this.panel1.Height = 0;
}
else
{
this.panel1.Height = 75;
}
}
}
}
界面:
代码:
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 WindowsFormsApp1
{
public partial class 多相机 : Form
{
public 多相机()
{
InitializeComponent();
}
CameraControl cam1 = new CameraControl("相机一"); //相机一
CameraControl cam2 = new CameraControl("相机二"); //相机二
CameraControl cam3 = new CameraControl("相机三"); //相机三
CameraControl cam4 = new CameraControl("相机四"); //相机四
#region 添加一个相机
private void button1_Click(object sender, EventArgs e)
{
this.panel1.Controls.Clear(); //清空容器内控件
//布局容器对象
TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
//设置布局的列数与行数(1列1行)
tableLayoutPanel.ColumnCount = 1;
tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); //设置百分比
tableLayoutPanel.RowCount = 1;
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); //设置百分比
//设置成填充满的模式
tableLayoutPanel.Dock = DockStyle.Fill;
//添加相机对象到容器,放在指定位置
tableLayoutPanel.Controls.Add(cam1, 0, 0);
//填充容器
this.panel1.Controls.Add(tableLayoutPanel);
}
#endregion
#region 添加二个相机
private void button2_Click(object sender, EventArgs e)
{
//清空容器当中有的控件
this.panel1.Controls.Clear();
//布局对象
TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
//设置布局的行数
tableLayoutPanel.RowCount = 3; //分成上下两部分
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); //设置百分比
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
#region 上半部分
//创建布局器对象
TableLayoutPanel tableLayUP = new TableLayoutPanel() { Dock = DockStyle.Fill };
//左右等分(1行2列)
tableLayUP.ColumnCount = 2;
tableLayUP.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); //设置百分比
tableLayUP.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
//添加相机
tableLayUP.Controls.Add(cam1, 0, 0); //行列坐标
tableLayUP.Controls.Add(cam2, 1, 0);
//将上半部分添加到布局器中
tableLayoutPanel.Controls.Add(tableLayUP, 0, 1);
tableLayoutPanel.Dock = DockStyle.Fill;
#endregion
//填充容器
this.panel1.Controls.Add(tableLayoutPanel);
}
#endregion
#region 添加三个相机
private void button3_Click(object sender, EventArgs e)
{
//清空容器当中有的控件
this.panel1.Controls.Clear();
//布局对象
TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
//设置布局的行数
tableLayoutPanel.RowCount = 2; //分成上下两部分
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); //设置百分比
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
#region 上半部分
//创建布局器对象
TableLayoutPanel tableLayUP = new TableLayoutPanel() { Dock = DockStyle.Fill };
//左右等分(1行2列)
tableLayUP.ColumnCount = 2;
tableLayUP.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); //设置百分比
tableLayUP.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
//添加相机
tableLayUP.Controls.Add(cam1, 0, 0); //行列坐标
tableLayUP.Controls.Add(cam2, 1, 0);
//将上半部分添加到布局器中
tableLayoutPanel.Controls.Add(tableLayUP, 0, 0);
tableLayoutPanel.Dock = DockStyle.Fill;
#endregion
#region 下半部分
//创建布局器对象
TableLayoutPanel tableLayDown = new TableLayoutPanel() { Dock = DockStyle.Fill };
//左中右等分(1行3列)只用中间一列
tableLayDown.ColumnCount = 3;
tableLayDown.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); //设置百分比
tableLayDown.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
tableLayDown.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
//添加相机
tableLayDown.Controls.Add(cam3, 1, 0); //行列坐标
//将下半部分添加到布局器中
tableLayoutPanel.Controls.Add(tableLayDown, 0, 1);
tableLayoutPanel.Dock = DockStyle.Fill;
#endregion
//填充容器
this.panel1.Controls.Add(tableLayoutPanel);
}
#endregion
#region 添加四个相机
private void button4_Click(object sender, EventArgs e)
{
//清空容器当中有的控件
this.panel1.Controls.Clear();
//布局对象
TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
//设置布局的行数与列数
tableLayoutPanel.ColumnCount = 2;
tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); //设置百分比
tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
tableLayoutPanel.RowCount = 2;
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); //设置百分比
tableLayoutPanel.RowStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
//设置成填充满的模式
tableLayoutPanel.Dock = DockStyle.Fill;
//添加lab标签
tableLayoutPanel.Controls.Add(cam1, 0, 0); //行列坐标
tableLayoutPanel.Controls.Add(cam2, 1, 0);
tableLayoutPanel.Controls.Add(cam3, 0, 1);
tableLayoutPanel.Controls.Add(cam4, 1, 1);
//填充容器
this.panel1.Controls.Add(tableLayoutPanel);
}
#endregion
#region 显示按钮
private void button8_Click(object sender, EventArgs e)
{
cam1.HideButton(false);
cam2.HideButton(false);
cam3.HideButton(false);
cam4.HideButton(false);
}
#endregion
#region 隐藏按钮
private void button7_Click(object sender, EventArgs e)
{
cam1.HideButton(true);
cam2.HideButton(true);
cam3.HideButton(true);
cam4.HideButton(true);
}
#endregion
}
}