vb.net创建控件数组
从VB6.0转为VB.net发现以前那套创建控件数组的方法不灵了,还以为VB.net不能创建控件数组,其实不是这样的,VB.net创建控件数组,只是方法变了,VB6.0转来的朋友习惯就好。
其实当我们把控件拖到窗体上,系统就自动为这些控件创建一个集合了,大家就很容易用循环语句,对这些控件统一操作。
比如,我从工具箱里拖3个控件到窗体:1个按钮,1个多选框,1个标签。当拖完后,系统就自动把窗体(父控件)下的控件组成一个集合,下面我们就循环代码让它们显示出现。
在visual studio 2022环境,按F5运行,出现界面,点击窗体空白处,出现下面结果:
我们再在窗体创建一个GroupBox控件: GroupBox做为一个容器控件,对于它里面的控件就是父控件,在GroupBox控件里,我们再创建3个控件:1个按钮,1个多选框,1个标签。
把代码稍改一下,如下:
运行结果如下:
根据上面的2次运行结果,我们知道容器内的控件自动成一个集合(最后创建的控件反而是第一个元素),我们很容易用循环语句对这个控件统一操作,也比较方便,但是我们只是想把其中的几个控件组成一个控件数组,怎么办呢?
方法就是:定义一个数组列表,然后把相应的控件加入其中就行了,以后操作这个控件,就是操作这个数组列表中的元素。
我先定义一个数组列表,取名:ABC 代码:Dim ABC As New ArrayList
ArrayList的相关知识可去微软了解相关知识,代码中的add, IndexOf等都是ArrayList的方法,Count是它的属性。
告诉新手:在visual studio 环境中,在代码里,鼠标点中ArrayList,让光标移动ArrayList中间,再按F1键,就可以到过 ArrayList 帮助的相关网址。
全部代码如下:
按F5运行,点击窗体,结果如下:
可见,代码成功地把3个控件加入到数组,并且为控件数组里的控件绑定了共同拥有的鼠标点击事件ABC_Click。
相比较VB6.0,这种方法,即可以让相同类型的控件加入到一个数组里来,也可以让不同类型的控件加入到一个数组,习惯后,这种让控件加入数组也是非常方便。
当然,还可以动态创建控件,并把它们加入到数组来,这就另做一篇文章来说明吧,这里不再赘述。
专题一:Labview表格控件 及 应用(一)
最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。
图1:表格控件
图2.表格控件显示项
可以通过显示项,选择是否显示索引框、行、列、垂直、水平等,可以都试一试。制作不同风格的表格来
下面说一下,应用表格控件的几个知识点。
图3.表格控件的实质是字符串数组
这一点非常重要,知道了这一点,就可以用数组的方式来控制它。所有数组的子VI都可以拿来用,比如初始化数组,数组排序,插入数组,索引等。
知道表格控件是一个数组,对于表格控件数据保存就简单多了。
这一点也比较重要,把表格等效成字符串数组处理,表格内容部分,就是上面两张图中的白色部分的东西。
有人问了,那行首,列首是什么?答案是 也是字符串数组。这样就很好了,Labview提供了非常多的数组子VI,可以随便地玩。
一个2D数组的大小一般是确定的,比如所3行4列。
哪一个表格就是一个2D数组,它是几行?几列?它还自带滚动条,是不是就没有大小?做两个试验。
用表格属性节点,让它显示表格的行数,列数。
由上述试验可以看出:
1. 表格控件行数、列数 表示前面板中 可见区域的行数和列数。
就是说,不过你滚动条怎么拉,行数和列数只是,可见区域的大小(包括行首,列首)。明白了这一点,我们就可以通过改变行数、列数来控制可见区域的大小了。
2. 表格的实际大小,通过数组大小测量,就是实际使用的数组大小(不包括行首,列首)
创建控件数组制作日历
因处理数据,需要给用户提供日期选择,日历制作方法如下。
一,选择Delphi或其他编程,布置窗体界面如下
31个日期按钮,不需要手工创建,通过代码产生控件数组,生成31个选项按钮。
在窗体show事件里,写代码如下
声明变量
var
sbtns:array[1..31] of TSpeedButton;//用于创建按钮控件数组
n,ncount,x,y,a,b,v,leftv,topv:word;
show事件代码
procedure TForm1.FormShow(Sender: TObject);
begin
ncount:=31;
leftv:=30;
topv:=30;
x:=40;
y:=40;
a:=0;
b:=0;
v:=3;
for n:=1 to ncount do
begin
sbtns[n]:=TSpeedButton.create(self);
sbtns[n].name:=\’sBtn\’ + inttostr(n);
sbtns[n].Parent:=self;
sbtns[n].Left:=leftv + a* x;
sbtns[n].top:=topv + b * y;
sbtns[n].Width:=x + v;
sbtns[n].Height:=y + v;
sbtns[n].Caption:=inttostr(n);
sBtns[n].OnClick:=BtnDay_Click;
sBtns[n].Font.Size:=11;
if a<5 then
a:=a+1
else
begin
a:=0;
b:=b+1;
end;
end;
end;
二,设置背景图片
可用shape图形作按钮的背影图片,底色设白色,边框颜色根据喜好设置。
程序运行,创建31个按钮在这个shape图形上,效果如下
三,编写click公共事件。
用户选了哪一天,需要提示结果,所以需要编写事件代码
procedure TForm1.BtnDay_Click(sender:tobject);
var
obj:TSpeedbutton;
begin
obj:=TSpeedbutton(sender);
application.MessageBox(pchar(\’你点击了\’ + #13 + obj.Caption + \’ 号\’),pchar(\’提示\’),MB_OK);
end;
程序运行效果如下
窗口皮肤颜色,可以根据喜好设置,比如下面蓝色
四,程序关键总结
数组按钮代码
类数组:=按钮类.Create(self)
这是产生按钮数组的关键。
然后代码设置他的坐标位置和大小,代码给控件设置日期值(哪一天,几号)。
Delphi语言很优美!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。