Notifications
Clear all

[Closed] dot net control collection

How do I collect all the controls(buttons) on a dot net form in a array ? form.controls() doesn’t produce the actual controls

1 Reply
1 Reply
(@gazybara)
Joined: 11 months ago

Posts: 0

Sometime I use this fn to collect all form controls.


   	fn getFormCtrls dnCtrl ctrls:#() =
   	(
		-- next line will also collect actual form
   		if dnCtrl.Parent == undefined do append ctrls dnCtrl
   		for i in 0 to dnCtrl.Controls.count-1 do 
   		(
   			ctrl = dnCtrl.Controls.Item[i] ; append ctrls ctrl
   			if ctrl.HasChildren and ((ctrl.gettype()).name) != "NumericUpDown" do (getFormCtrls ctrl ctrls:ctrls)
   		) ; ctrls
   	)
   

Later you can simply use other two fn’s to set “lifetime control” or to “dispose” form controls.


   mapped fn setLifetimeControl control = dotnet.setLifetimeControl control #dotnet
   mapped fn disposeControl control = control.dispose()