Ribbon event handling order (getselecteditemindex, invalidatecontr

C

Carol M

I want to use the callbacks "GetSelectedItemIndex"/"GetSelectedItemID" to set
or store the state of the value displayed in a dropdown box.

It appears that no matter what order I call the "GetSelected..." and
"Invalidatecontrol" events, the "invalidate" always happens last, and fires
"GetSelected..." with the first value of the item in the dropdown list.

In my form unload event the following code:

Call OnGetSelectedItemIndex(gctlDdnFilterFrmClass, 2)
gobjRibbonUI.InvalidateControl ("btnOpenFrmClass")
gobjRibbonUI.InvalidateControl ("ddnFilterFrmClass")
Call OnGetSelectedItemIndex(gctlDdnFilterFrmClass, 2)
Call OnGetSelectedItemIndex(gctlDdnFilterFrmClass, 2)

is always handled in the following order

"OnGetSelectedItemIndex" set to 2,
"OnGetSelectedItemIndex" set to 2,
"OnGetSelectedItemIndex" set to 2,
(invalidate kicks in)
"OnGetEnabled" (works fine)
"OnGetSelectedItemIndex" set to 0 (even if I hardcode the index to 2 in the
sub).

I cannot save the state on closing the form if I want to disable the
dropdown. My inelegant solution is to always open the form in the same state,
which corresponds to the first value in the dropdown list.

I feel like I have tried every possible combination of invalidating in
different form events and control callbacks, but since it seems like there
are infinitely many possible combinations, I may just not have hit on the
right one. Maybe I just don't understand the relationship of invalidate and
conrol callbacks.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top