VisionPro笔记(1):动态创建控件
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):动态创建控件的更多相关文章
- 小子给大家分享一个或者多个新手创建tableview经常会遇到的坑(动态创建控件,xib的重用)
小子最近做了一个根据接口返回的数据在Cell中动态创建控件,感觉应该会一部分人卡在这里,小子就跟大家分享一下: 1.控件重复创建:这个问题出现的原因是动态创建的cell内容的时候,无法进行重用设置,所 ...
- 【转载】MFC动态创建控件及其消息响应函数
原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...
- MFC动态创建控件及其消息响应函数
这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...
- IOS开发学习笔记019-动态创建控件
动态创建控件 一.按钮 二.文本输入框 三.lable标签 注意: 只是简单的拖拽控件会毁了你,所以最好还是手动通过代码创建控件. 如果要通过代码生成按钮的话,可以在系统自带的函数viewDidLoa ...
- delphi动态创建控件
动态创建控件 其实动态创建控件很简单,相信看过本文后你会全明白的. 1 先在单元的initialization 部分注册它,(这样在单元使用时会自动注册的)如: RegisterClass( TBut ...
- MFC 动态创建控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一 ...
- 在DELPHI中动态创建控件以及控件的事件
在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...
- Winfrom动态创建控件
FlowLayoutPanel flowLayoutPanel1 = new FlowLayoutPanel();for (int i = 0; i < 9; i++){ Button b ...
- 动态创建控件 #Create(...)
在类中创建一个控件对象;例:CButton m_btn; 用Create创建一个对象(#其实已经与其绑定)m_btn.Create(.....); #注意Create()函数的参数 问题一:点击一个b ...
随机推荐
- mysql 半同步复制 插件安装以及测试
mysql Server version: 5.5.18-log MySQL Community Server (GPL) 1.安装插件 检查mysql是否支持动态添加插件: ro ...
- JS 获取字符串实际长度
解决思路,把中文转换为两个字节的英文,再计算长度. function getStrLength(str) { return str.replace(/[\u0391-\uFFE5]/g,"a ...
- 【Core2.0帮助类】
缓存帮助类(CacheHelper) /// <summary> /// 缓存帮助类 /// </summary> public class CacheHelper {//下载 ...
- 180114 用装饰器实现在不改变函数调用者的代码基础上,实现在函数执行前后分别打印"before" 和 "after"
def bef_aft(func): #定义一个名为bef_aft的函数名 ,()里的是函数的参数,设置为func, 函数的参数分为实参和形参,有个参数传递的概念 ,下面有很多的解释 def PRin ...
- Django普通文件上传
前端代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- flask开发框架
# -*- coding: utf-8 -*- # import fcrm from fcrm import app if __name__ == '__main__': # fcrm.app.run ...
- (亲测)躺着破解IDM下载权限,治疗不用破解补丁的强迫症们
首先.如果触犯了某些规则权限,请原谅. 很早以前就做过这个的破解,挺实用的,我今天就把之前写的经验贴出来大家一起学习学习~~~ 今天利用这个方法破解了最新版,最终的效果如下所示:我不是来刷存在感的.只 ...
- AIM Tech Round 4 (Div. 2)(A,暴力,B,组合数,C,STL+排序)
A. Diversity time limit per test:1 second memory limit per test:256 megabytes input:standard input o ...
- BZOJ:4873: [Shoi2017]寿司餐厅
4873: [Shoi2017]寿司餐厅 首先很开心在膜你赛的时候做了出来. 看到数据范围,看到不能dp,看到贡献去重后计算,咦,流? 那就容易了,转最大权闭合子图,每个区间建一个点,取了就一定要取他 ...
- Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果
为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...