how to use CheckedListViewItemCollection (dotnet)

how to use CheckedListViewItemCollection (dotnet)

hainamcad
Advocate Advocate
1,262 Views
7 Replies
Message 1 of 8

how to use CheckedListViewItemCollection (dotnet)

hainamcad
Advocate
Advocate

i want to create a listview with checkbox , and have an checked items array  

i searched google but i can not find any samples , please help me

sorry my english is bad , i use google translate

0 Likes
Accepted solutions (1)
1,263 Views
7 Replies
Replies (7)
Message 2 of 8

denisT.MaxDoctor
Advisor
Advisor
Accepted solution
try(destroydialog dialog) catch()
rollout dialog "Simple Mats" width:300
(
	dotnetcontrol lv "ListView" width:296 height:480 pos:[2,2]
	button checked_bt "Get Checked" width:296 pos:[2,220]

	fn fillLv =
	(
		items = for mat in meditmaterials collect
		(
			item = dotnetobject "ListViewItem" mat.name 
			item.tag = dotnetmxsvalue mat
			item
		)
		lv.items.addrange items
	)
	fn initLv = 
	(
		lv.View = lv.View.Details
		lv.MultiSelect = off
		lv.CheckBoxes = on
		lv.AllowDrop = on
		lv.Columns.add "Materials" 280
			
		fillLv()
	)
	on checked_bt pressed do
	(
		checked = #{}
		checked.count = lv.items.count
		checkeditems = lv.checkeditems
		for k=0 to checkeditems.count-1 do append checked (checkeditems.item[k].index + 1)
		
		format "now checked >> %\n" checked
	)
	on dialog close do
	(
	)
	on dialog open do
	(
		initLv()
	)
)
createdialog dialog
0 Likes
Message 3 of 8

hainamcad
Advocate
Advocate

i changed , and it worked , thank you very much

 

	on lv ItemChecked itemCheckedEventArgs do
	(
		checked = #{}
		checked.count = lv.items.count
		checkeditems = lv.checkeditems
		for k=0 to checkeditems.count-1 do append checked (checkeditems.item[k].index + 1)
		
		format "now checked >> %\n" checked
	)

 

 

0 Likes
Message 4 of 8

denisT.MaxDoctor
Advisor
Advisor

you can use another event :

	on lv ItemCheck sender arg  do
	(
		format "item check >>>>>>>>> index:% > state before:% > after:%\n" arg.index (arg.CurrentValue == arg.CurrentValue.Checked) (arg.NewValue == arg.NewValue.Checked)
	)	

 

in some cases it's easier to use

 

0 Likes
Message 5 of 8

istan
Advisor
Advisor

I have an add-on question to the listview specialist: Is there any way to supress the feature "select item name by char-input"? I'd like to use shortkeys but w/o pressing any control key.. I already use the keydown event, but if I show there a dialog, the supresskeypress fails afterwards..

0 Likes
Message 6 of 8

denisT.MaxDoctor
Advisor
Advisor

use PreviewKeyDown event.  check the KeyEventArgs for details

0 Likes
Message 7 of 8

istan
Advisor
Advisor

we've already been that far 😁😁 .. exception.. but AD is aware of it at least..

0 Likes
Message 8 of 8

denisT.MaxDoctor
Advisor
Advisor

yeh ... probably, wanting to keep the MAX accelerators, the developers broke original Key Events behavior for .net forms

 

Of course, it could be fixed on the fly by intercepting some messages, but is it worth it?

0 Likes