VisionPro学习笔记(1):动态创建控件

有的时候可能需要在程序中动态创建控件,VisionPro实例中提供了一例动态创建Blob控件的方法。当然,动态创建过多的控件会极大的消耗系统的资源,建议少用。用完之后在不再需要时要及时销毁,以回收资源。

1)声明全局变量:

Private mBlobTool as CogBolobTool

Private mBlobEdit as CogBlobEdit

2) 创建:

由于创建过程需要占用资源,所以需要改变鼠标垫状态。

Me.Cursor=Cursors.WaitCursor

构建Blob Tool

if mBlobTool is nothing then mBlobTool=new CogBlobTool

mBlobEdit=new CogBlobEdit

开始初始化Edit控件

Ctype(mBlobEdit,System.ComponentModel.ISupportInitialize).BeginInit()

原始界面

mBlobEdit.Enable=True

mBlobEdit.Location=New System.Drawing.Point(0,0)

mBlobEdit.Name="CogBlobEdit1"

mBlobEdit.Size=new System.Drawing.Size(800,450)

mBlobEdit.TabIndex=0

Me.tabControl1.SelectedIndex=0

Me.BlobTabPage.Controls.Add(mBlobEdit)

Ctype(mBlobEdit,System.ComponentModel.ISupportInitialize).EndInit()

初始化结束时向BlobEdit控件指定Tool

mBlobEdit.Subject=mBlobTool

改变鼠标为默认形式

Me.Cursor=Cursors.Default

添加控件之后界面

3)窗体关闭时或其它时候需要回收资源:

Me.Cursor=Cursors.WaitCursor

Me.BlobTabPage.Controls.Remove(mBlobEdit)

mBlobEdit.Dispose()

Me.Cursor=Cursor.Default

由于在自动创建时控件的AutoCreateTool会被忽略,因此用户必须创建Tool,并把控件指定到此Tool。

VisionPro笔记(1):动态创建控件的更多相关文章

  1. 小子给大家分享一个或者多个新手创建tableview经常会遇到的坑(动态创建控件,xib的重用)

    小子最近做了一个根据接口返回的数据在Cell中动态创建控件,感觉应该会一部分人卡在这里,小子就跟大家分享一下: 1.控件重复创建:这个问题出现的原因是动态创建的cell内容的时候,无法进行重用设置,所 ...

  2. 【转载】MFC动态创建控件及其消息响应函数

    原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...

  3. MFC动态创建控件及其消息响应函数

    这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...

  4. IOS开发学习笔记019-动态创建控件

    动态创建控件 一.按钮 二.文本输入框 三.lable标签 注意: 只是简单的拖拽控件会毁了你,所以最好还是手动通过代码创建控件. 如果要通过代码生成按钮的话,可以在系统自带的函数viewDidLoa ...

  5. delphi动态创建控件

    动态创建控件 其实动态创建控件很简单,相信看过本文后你会全明白的. 1 先在单元的initialization 部分注册它,(这样在单元使用时会自动注册的)如: RegisterClass( TBut ...

  6. MFC 动态创建控件

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的.   一.创建动态控件:   为了对照,我们先来看一下静态控件的创建.   放置静态控件时必须先建立一个容器,一 ...

  7. 在DELPHI中动态创建控件以及控件的事件

    在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...

  8. Winfrom动态创建控件

    FlowLayoutPanel flowLayoutPanel1 = new FlowLayoutPanel();for (int i = 0; i < 9; i++){    Button b ...

  9. 动态创建控件 #Create(...)

    在类中创建一个控件对象;例:CButton m_btn; 用Create创建一个对象(#其实已经与其绑定)m_btn.Create(.....); #注意Create()函数的参数 问题一:点击一个b ...

随机推荐

  1. (7拾遗)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练

    从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...

  2. 富文本编辑器Quill的使用

    我们经常需要使用富文本编辑器从后台管理系统上传文字,图片等用于前台页面的显示,Quill在后台传值的时候需要传两个参数,一个用于后台管理系统编辑器的显示,一个用前台页面的显示,具体代码如下截图: 另Q ...

  3. CentOS 7 如何设置默认启动方式为命令行模式

    1.首先需要有GUI图形界面,没有进安装 yum groupinstall "GNOME Desktop" "Graphical Administration Tools ...

  4. python requirements使用方法

    记得导入导出包的时候要想激活虚拟环境. 1.导出requirements方法 pip freeze > requirements.txt 2.安装requirements方法 pip insta ...

  5. Nginx常用功能(5)

    一.反向代理 1.多域名跳转(location) server www.test.com location / { proxy_pass http://192.168.100.100:8080/web ...

  6. AttributeError: 'int' object has no attribute 'log'

    我们有时候在对组数进行操作时候,偶尔会出现这个问题. 比如: #coding:utf- import pandas as pd import numpy as np if __name__ == '_ ...

  7. 新浪新闻页面抓取(JAVA-Jsoup)

    1.使用gradle建立工程: 工程格式如下: include ':spider-demo' rootProject.name = 'my-spider-demo' settings def void ...

  8. Machine Learning - week 4 - 编程练习

    = X' * (h - y) LrCostFunction 与上一周的有什么不同? 与 week3 的 costFunctionReg 是一样的.Week3 中参考答案没有排除 theta 第一行,但 ...

  9. 【JavaScript_DOM 淘宝购物车】

    让我们一起看一下淘宝的购物车是怎么做的吧,刚刚入门的我可能很多地方的用法都不够优化,不过个人感觉先把逻辑清晰之后再做的话其实也并不难哦, 以下是我做的页面代码: HTML代码: <!DOCTYP ...

  10. DFS中的奇偶剪枝学习笔记

    奇偶剪枝学习笔记 描述 编辑 现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点, s | | | + — — — e 如图所示(“|”竖走,“—”横走,“+”转弯),易证abs( ...