Bug in MultiColumnComboBox


I think I've found a bug in your MultiColumnComboBox (MCCB):

have a mask with 3 MCCB's; if the value of the first one changed, the
other 2 have to be cleared and then I am searcing for values in the
database. The user should be able to add new values.

For the
first situation (user selects different value in first MCCB) I use the
OnChange event; resetting the other 2 MCCBs and reading the values from
the database; this works fine

If the user types in a new value, I want to clear the other 2 MCCB using the OnAsyncKeyPress event


if I start my application and try to enter a new value in MCCB1 it is
replaced immediately with the first RowData (or the last selected
RowData); I am not able to enter a new value. If I delete the
OnAsyncKeyPress Event I can enter a new value! I've set
"NoMatchingItems" property to "" (because I don't want to see this if I
try to enter a new value) and "LookupAfterChars" to 100 because I don't
want any LookUp during entering a new value.

So there are 2 points:

Using the OnAsyncKeyPress event will disallow to enter any new value,
it will be replaced by a RowData immediately (thow "Editable" property
is set to "true")

2. It would by nice to have a new LookupMethod "None" to disable Lookup at all


Oh, and another one: I've tried to use OnAsyncEnter to test wether the user entered a new value, but it will be resetted to a RowData Value too! 

(sorry, meant "OnAsyncExit"

  1. Can you try using OnAsyncChange event instead? This event is called when an item is selected from the lookup list.

    2. This is a good suggestion and we'll consider adding this functionality in a future version.

Dear Bart!

I tryed using the OnAsyncChange event but it is still not working. When I enter anything in the OnAsyncKeyPress event (no matter what) the user is not able to enter a new value in the combo box, it will be replaced with the last selected item immediately after pressing any key!

BTW: Is it good to use an OnAsync Event when reading data from database is neccessary? In this case I have to contact the server and populate the form with new values, so an OnAsync Event should not give any benefits?


- Have you tried to disable the OnAsyncKeyPress event and use the OnAsyncChange event instead?
The IWMultiColumnComboBox should only be updated when an item from the lookuplist is selected.

- I think it can be good to use an async event in this case. The form is not updated completely during an async event, only the changed values are update so this generates less data transfer.

Dear Bart,

I can not use the OnAsyncChange event, because it is NOT fired, when the user enters a new value!

I want to use it for pre-selecting existing products or entering a new one. Combo1 is populated with stored product types. Every product type can have up to 99 subtypes, so if the user selects a product type in combo1 (OnAsyncChange) I have to read the corresponding subtypes for combo2 from database. The user still have the opportunity to enter a new product type, that may not be stored in database at the moment. In this case I have to clear the combo2, because for a new product type there can't be any subtype stored. (The use must enter a corresponding subtype too)

Unfortunately using the OnAsyncKeyPress makes the Combo not editable at all (user can not enter a new value) because automatically one of the predefined Items will replace any user imput :(

As a workaround I use the OnAsyncEnter event of Combo2 to clear it, if an unknown product type is entered in combo1, but this is ugly, because the user has to click combo2 to clear it. If he does not, the last selected item of combo2 is automatically stored as a new subtype ...

Hope this bug can be fixed soon ...


The TIWMultiColumnComboBox has been updated and now accepts keyboard entry when the OnAsyncKeyUp event is assigned.
Unfortunately it's not supported to use the OnAsyncKeyPress event due to IntraWeb framework limitations.
The update will be available with the next release of the TMS IW Component Pack.