首页 > 编程语言 >C#Halcon联合编程动态生成显示窗口

C#Halcon联合编程动态生成显示窗口

时间:2024-12-25 12:28:11浏览次数:8  
标签:C# 编程 System Halcon tableLayoutPanel int new using Add

UI编辑界面

.exe显示界面

代码

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 HalconDotNet;

namespace Test HWindow 动态生成窗口
{
    public partial class Form1 : Form
    {
        //声明全局窗口变量
        List<ChoiceTech.Halcon.Control.HWindow_HE> hw = new 
        List<ChoiceTech.Halcon.Control.HWindow_HE>();

        ChoiceTech.Halcon.Control.HWindow_HE hw1 = new ChoiceTech.Halcon.Control.HWindow_HE() { Dock = DockStyle.Fill };
        ChoiceTech.Halcon.Control.HWindow_HE hw2 = new ChoiceTech.Halcon.Control.HWindow_HE() { Dock = DockStyle.Fill };
        TableLayoutPanel tableLayoutPanel;
        public Form1()
        {
            InitializeComponent();
            
        }
        /// <summary>
        /// 创建布局器
        /// </summary>
        /// <returns>返回TableLayoutPanel容器</returns>
        /// 
        public TableLayoutPanel CreateTableLayoutPanel(int column,int row)
        {
            //实例化布局器
            TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
            //设置布局器的行列数
            tableLayoutPanel.ColumnCount = column;
            tableLayoutPanel.RowCount = row;
            for (int i = 0; i < row; i++)
            {
                tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, (100 / row)));//百分比
            }
            for (int i = 0; i < column; i++)
            {
                tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, (100 / column)));
            }
            //设置为填充满的模式
            tableLayoutPanel.Dock = DockStyle.Fill;
            //返回布局器
            return tableLayoutPanel;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int CamCount = 2;
            //int CamCount = Convert.ToInt16(textBox1.Text);
            tableLayoutPanel = CreateTableLayoutPanel( CamCount,1);//?列?行
            //tableLayoutPanel  增加列 行
            tableLayoutPanel.Controls.Add(hw1,0,0);//列,行
            tableLayoutPanel.Controls.Add(hw2, 1, 0);

            //HOperatorSet.SetWindowParam(hw1.hWindowControl.HalconWindow, "background_color", "white");
            panel1.Controls.Add(tableLayoutPanel) ;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            HObject obj1 = new HObject();
            HOperatorSet.ReadImage(out obj1, @"E:\项目\电芯上料现场\3拉\20240410_v1.0_3L\20240411_v2.0_3L\315标定图\泡沫横1\2.bmp");
            hw1.HobjectToHimage(obj1);
            HObject obj2 = new HObject();
            HOperatorSet.ReadImage(out obj2, @"E:\项目\电芯上料现场\3拉\20240410_v1.0_3L\20240411_v2.0_3L\315标定图\泡沫横1\3.bmp");
            hw2.HobjectToHimage(obj2);
        }

    }
}

标签:C#,编程,System,Halcon,tableLayoutPanel,int,new,using,Add
From: https://blog.csdn.net/2202_75557553/article/details/144686144

相关文章

  • 【Python】Visdom:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,
    【Python】Visdom:ConnectionRefusedError:[WinError10061]由于目标计算机积极拒绝,无法连接。问题描述Traceback(mostrecentcalllast):File"<PATH>\lib\site-packages\urllib3\connection.py",line196,in_new_connsock=connection.create_connection......
  • Oracle Database 23ai 中的DBMS_HCHECK
    在Oracle23ai中,DBMS_HCHECK包允许我们检查数据库中已知的数据字典问题。 几年前,Oracle发布了hcheck.sql脚本(文档ID136697.1)来检查数据库中已知的数据字典问题。DBMS_HCHECK包意味着我们不再需要下载hcheck.sql脚本来执行此操作。需要hcheck.sql脚本可以留言......
  • 【甲方安全】工业行业+工控嵌入式设备:PLC网络的几种常用通讯方式
    电气论坛2023年02月28日14:00山东内容摘要随着工业时代的发展,工业自动化控制已进入网络时代,工业控制器连网也为网络管理提供了方便。MODBUS通信就是工业控制器的网络协议中的一种。关键词:MOBUS通信协议,RS485,CPU,程序设计一、PLC网络的几种常用通讯方式1.1周期I/O通信方式......
  • centos7.9 安装redis 7.4.1
    redis下载地址:http://download.redis.io/releases/选择自己想要的版本,本次安装的是7.4.1安装redis下载包到服务器wgethttp://download.redis.io/releases/redis-7.4.1.tar.gz下载包到/usr/local/redis解压tar-zxvfredis-7.4.1.tar.gz把解压的文件夹拷贝到默认路......
  • CF2043C 题解
    CF2043C题解题意给定一个除了\(-1,1\)之外,最多存在一个\(x,x\in[-10^9,10^9]\)的数的序列,求其子段和的所有可能值,从小到大输出。分析很容易就去思考如何从这个特殊的\(x\)入手。于是先排除这个特例,考虑全都是\(1,-1\)的情形,那么顺序从左到右不断加入\(a_i\),可以发现......
  • 0day 移动应用getPicServlet存在任意文件的读取漏洞
     0x01产品概述    0day移动应用getPicServlet存在任意文件的读取漏洞通用描述管理和发布于一体的智能化平台,广泛应用于新闻、媒体和各类内容创作机构。该平台支持多终端、多渠道的内容分发,具备素材管理、编辑加工、智能审核等功能,通过AI技术辅助内容创作与数据分析......
  • Kafka、RocketMQ、RabbitMQ 对比
    面试中对Kafka、RocketMQ、和RabbitMQ的对比是常见问题,可以从以下几个维度进行分析:1️⃣基础概念特性KafkaRocketMQRabbitMQ开发语言Java+ScalaJavaErlang定位分布式流处理平台分布式消息中间件高效、可靠的消息队列消息模型Topic,基于分区和偏移量Topic/Queue,基......
  • mybatis 连接 ORACLE
    mybatis连接ORACLE|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|-------------|--......
  • mybatis generatorConfiguration 生成代码
    mybatisgeneratorConfiguration生成代码|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|......
  • Microsoft.Practices.EnterpriseLibrary连接Oracle
    Microsoft.Practices.EnterpriseLibrary连接Oracle|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|----......