This is a snippet of code where I want to control the checkboxes by multiple selections in the listview itself and hitting the checkbox (whether it is checked or not) to select / de-select them accordingly, trouble is when I do this it doesn't do them in one but for each item.
Basically, if I shift and select the items and check off the box the value counts down in real-time for the countLabelVal text.
Is there a dotNet way of doing this?
on lv ItemChecked do part of the code below is the trouble maker.
-- This is a snippet of code where I want to control the checkboxes by multiple selections and hitting the checkbox (whether checked or not) to select / de-select them accordingly, trouble is when I do this it doesn't do them in one but for each item. Is there a dotNet way of doing this?
try(destroydialog ::lvRolTest)catch()
rollout lvRolTest "Check Mate.."
(
local lvSetItemsProp
local reSizeListView
label countLabelPrefix "How many you say ?" across:3
label countLabelVal ""
checkButton ChkLvButton "Un/check All..."
dotNetControl lv "ListView" width:250 height:545 pos:[10,30]
on lvRolTest open do
(
lv.View = (dotNetClass "View").Details
lv.FullRowSelect = true
lv.GridLines = true
lv.MultiSelect = true
lv.Checkboxes = true
lv.Columns.add ("Items")
reSizeListView()
for x=1 to 100 do
(
lv.BeginUpdate()
local newLvItem = dotNetObject "ListViewItem" ("Item " + x as string)
newLvItem.checked = true
lv.EndUpdate()
lv.items.add newLvItem
)
lv.Focus()
countLabelVal.text = (lv.CheckedItems.count) as string
)
on lvRolTest resized val do (
reSizeListView()
)
on ChkLvButton changed state do (
if state do ChkLvButton.text = "Check All..."
lvSetItemsProp rolArg:(#lvRolTest as string) lsArg:(#lv as string) prop:#Checked state:((not state) as string)
if not state do ChkLvButton.text = "Uncheck All..."
countLabelVal.text = (lv.CheckedItems.count) as string
lv.Focus()
)
on lv ItemChecked do
(
if lv.CanSelect and lv.CanFocus and lv.Focused then
(
lv.BeginUpdate()
countLabelVal.text = (lv.CheckedItems.count) as string
lv.EndUpdate()
)
)
fn reSizeListView = (
lv.width = lvRolTest.width-20
lv.height = lvRolTest.height-40
lv.columns.item[0].width = lvRolTest.width-40.5
)
fn lvSetItemsProp rolArg:#rolArg lsArg:#lsArg prop:#checked state:#false = (
execute("for i = 0 to "+rolArg+"."+lsArg+".items.count-1 do "+rolArg+"."+lsArg+".items.item[i]."+prop+"="+state)
)
)
createDialog lvRolTest 270 575 style:#(#style_SysMenu, #style_ToolWindow, #style_resizing)
-- lvRolTest.ChkLvButton.state = true
By 3dwannab · 2019-08-03