2012-04-25 46 views
1

プログラムに不特定の量の新しいUserControlsをフォームに追加しようとしています。 1つは、UserControl内のComboBoxで項目が選択されるたびに追加されます。VB.NET:SelectedIndexChanged複数回発生する

問題は、SelectedIndexChangedイベントが完全に不規則に発生することです。時には2回、場合によっては3回などであるが、1回ではない。コンボボックスのSelectedIndexを-1に設定した回数に関係なく、SelectedIndexを0にして少なくとも1回起動します.Itemselectedイベントは、SelectedIndexChangedイベント間で複数回発生することがあります。

InvoiceEntry.vbはスニペット:

Public Event ItemSelected As EventHandler 
Private Sub cboItem_SelectedIndexChanged(sender As System.Object, _ 
      e As System.EventArgs) Handles cboItem.SelectedIndexChanged 
    RaiseEvent ItemSelected(Me, EventArgs.Empty) 
End Sub 

Invoice.vbスニペット:

Private numEntries As Integer = 1 

Public Sub invEntry1_ItemSelected() Handles invEntry1.ItemSelected 
    numEntries += 1 

    Dim newEntry As InvoiceEntry = invEntry1 
    Dim pt As Point = newEntry.Location 
    pt.Y += 30 

    newEntry.Location = pt 
    newEntry.Name = "invEntry" + numEntries.ToString 

    pnlEntries.Controls.Add(newEntry) 

End Subの私が間違っているものに、完全な喪失によ

。私が誰か他の人がそれを理解するまで、このスレッドを監視しているので、もっと情報が必要な場合はお知らせください。

答えて

2

私が知っている限り、新しいコンボボックスを追加すると、選択されたインデックスが変更されます(これが最初にトリガされるときです)。また、プログラムで値を変更するたびにトリガされます。

ユーザーの後にコントロールを生成する場合は、コンボボックスから何かを選択しているが、私が探していた正確に*何*つまり

ComboBox.SelectionChangeCommitted 

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted.aspx

+0

を使用してみてください!この問題は過去何度も私を悩ませてきましたが、私は決して適切な解決策を見つけることができませんでした。あなたは、英雄です。 –