AARDIO 动态添加控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AARDIO 动态添加控件相关的知识,希望对你有一定的参考价值。

参考技术A 例程:

import win.ui;

/*DSG*/

wform = win.form(text="AddCtrl";right=880;bottom=543;max=false)

wform.add(

button=cls="button";text="开始";left=8;top=189;right=75;bottom=247;flat=1;z=1;

map=cls="custom";text="自定义控件";left=0;top=261;right=876;bottom=537;bgcolor=15793151;border=1;z=2

)

/**/

var mpxy=;//x,y,width,height,text,indexId : 105,210,55,35,"M0101",1 //定义控件属性

var mcount=0;//记录控件数量

var mxy=

      100,210,55,35,

      100,170,55,35,

      45,105,55,35,

      45,65,55,35,

      75,5,55,35

;  //定义控件起始显示区域

initmpxy=function(xy)

    var d=0;

    var id=0;

for(i=1;14;1)

d=(i-1)*xy[1][3];

id++;

table.push(mpxy,xy[1][1]+d,xy[1][2],xy[1][3],xy[1][4],"M01"+string.right("0"+i,2),id)

id++;

table.push(mpxy,xy[2][1]+d,xy[2][2],xy[2][3],xy[2][4],"M02"+string.right("0"+i,2),id)

id++;

table.push(mpxy,xy[5][1]+d,xy[5][2],xy[5][3],xy[5][4],"M05"+string.right("0"+i,2),id)



for(i=1;15;1)

d=(i-1)*xy[1][3];

id++;

table.push(mpxy,xy[3][1]+d,xy[3][2],xy[3][3],xy[3][4],"M03"+string.right("0"+i,2),id)

id++;

table.push(mpxy,xy[4][1]+d,xy[4][2],xy[4][3],xy[4][4],"M04"+string.right("0"+i,2),id)



mcount=id;

//初始化控件区域和位置

initmpxy(mxy)

wform.button.oncommand = function(id,event)

//在窗体上动态添加控件和事件

    for(i=1;mcount;1)

      var sc=mpxy[i][5];

      wform.add( [sc]=cls="button";bottom=mpxy[i][2]+mpxy[i][4];right=mpxy[i][1]+mpxy[i][3];left=mpxy[i][1];top=mpxy[i][2];z=1;text=mpxy[i][5];id=i+100;autoResize=false;hide=1;edge=1; )//hide=1为默认隐藏,这样显示的时候不会闪烁

  wform[sc].oncommand=function(id,event)

win.msgbox(sc,mpxy[i][6],0,0);

 



for(i=1;mcount;1)

  wform[mpxy[i][5]].show();



//在可视控件内动态添加控件和事件

    var bt="";

for(i=1;mcount;1)

bt=mpxy[i][5];

wform.map.addCtrl([bt]=cls="button";text=mpxy[i][5];left=mpxy[i][1]+1;top=mpxy[i][2];right=mpxy[i][1]-2+mpxy[i][3];bottom=mpxy[i][2]+mpxy[i][4];id=i+300;autoResize=false;

oncommand=function(id,event)

win.msgbox(bt,"控件内:"+ mpxy[i][6],0,0);

       

    )

   



wform.button.wndproc = function(hwnd,message,wParam,lParam)

//wform.cmdTranslate(hwnd,message,wParam,lParam);

//新版的aardio 不用加这句也可以执行动态控件的事件

wform.show();

return win.loopMessage();

C#winform动态添加控件

第一步,想要添加什么对象,就先通过NEW关键字,实例化一个对象,创建一个对象的实体。
第二部,设置当前对象实体的属性值,事件等。
第三部,通过容器对象的Controls(该属性为一个集合)属性的Add方法添加你当前创建的对象实体。
这样,你就看到你动态添加了一个控件。
参考技术A 可以在窗体里面插入一个panel,在添加新控件的时候就向panel中添加就行了,
例:

//button点击事件
TextBox
t1
=
new
TextBox();//新建一个TextBox,可以给控件设置Name等属性
panel1.Controls.Add(t1);//向panel1添加新建的TextBox

其它控件添加方法基本相同

以上是关于AARDIO 动态添加控件的主要内容,如果未能解决你的问题,请参考以下文章

MFC如何动态添加控件

C#winform控件动态添加和动态移除

C# WinForm 如何动态添加控件和设计控件布局

c# 中如何在GroupBox控件中动态添加与移除控件

c#动态添加控件,为啥没有显示啊,谢谢啦~

C# WinForm 自定义控件如何实现动态添加子控件