Let's get some terminology straight so that we can understand you issue ...
You have a Form with a ComboBox control and that ComboBox has an event
handler attached to it's SelectedIndexChanged event.
You are observing that the SelectedIndexChanged event of the ComboBox is
being fired at points where you think it shouldn't be.
Those times are:
When the application starts
When the form containing the ComboBox is launched
When you change the item that is selected in the drop-down list portion of
ComboBox
Is that a fair interpretation of what you are experiencing? (Let's assume
that it is.)
The only way that the event could possibly fire when the application starts
is if the Form containing the ComboBox is loaded and/or shown at startup
(either as the startup form or by way of code you have added). This means
that two of the 'times' are actually a single 'time'.
It is apparent that the SelectedIndexChanged event handler is 'wired' at
design time by way of a 'Handles' clause on it's declaration.
It is also apparent that the list part of your ComboBox is 'bound' to some
datasource and the default behaviour, when 'bound' is that the first item in
the last part is automatically selected, thus causing the 'pre-wired'
SelectedIndexChanged event to fire.
To circumvent this behaviour, do not 'pre-wire' the eventhandler, but in the
Load event handler for the form, insert code something like the following:
MyComboBox.SelectedIndex = 0
AddHandler MyComboBox.SelectedIndexchanged, Addressof
MyComboBox_SelectedIndexChanged
Because the ComboBox is initialized before the Load event for the form is
fired, no SelectedIndexChanged events for the ComboBox will be fired until
after you have 'added' the 'handler'.
In Addition, be aware (be very aware) that when you change selections in the
ComboBox, the SelectedIndexChanged event will fire twice. The first time is
the current selection being 'deselected' and the second is the new selection
being 'selected' and you need to account for this in the event handler.