comboBox1.Items.Clear(); // bu kısımda comboBox1 içeriği temizleniyor
comboboxindex = comboBox1.SelectedIndex; // bu kısımda 0 içeriğe sahip comboBox1'dan seçili index'i istiyorsun


120 öğesi olan bir listeyi temizleyip 100. öğeye erişmek veya 120 öğesi olupta 121. öğeye erişmen dizi sınırlarının dışındaydı şeklinde bir hata fırlarması normal.
Üstelik Clear(); dediğin için öğe sayısı 0 ve SelectedIndex varsayılan olarak -1 olduğu için (çünük liste boşsa default selected index -1'dir) dizi dışından bir erişim oluyor.


comboBox1.Items.Clear();


Temizleme işini ya bir satır aşağı kaydıracaksın ya da yapmayacaksın. Çünkü comboBox2 adından alt kategorileri listelediğin ikinci bir nesne var, temizlenmesi gereken bence comboBox2.