Winform多相机窗口

                                                                      界面:

代码:

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


    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值