Sorunu buldum.
Sorun, Microsoft'un MessageHandles'ı nasıl tasarladığıdır.
Bir öğenin alt öğesi bir ileti atarsa (örneğin selectionChanged) ve ileti işlenmiyorsa, ileti ana Öğeye gider.
Bu yüzden, benim durumumda, ListBox'ta bir öğeye tıklarsam, TabControl'e "selectionChanged" (işlenmemiş) mesajı gönderildi, sorun buydu. TabControl.selectionChanged içinde özel bir kod var, çünkü her zaman benim kodumu çalıştırarak, ListBox'ta öğeyi seçerek.
Çözüm, bu kodu ListBox'ın selectionChanged olay işleyicisine koymaktır:
private void ListBox_selectionChanged(object sender, DragEventArgs e)
{
e.handled = true;
}
Bu, mesajın çocuk mesajevinden ana mesaj taşıyıcıya aktarılmasını engeller.
Umarım açıklamamdan geçebilir.