2016-02-05 2 views
-1

Я пытаюсь удалить значение из выпадающего списка, Комбобокс находится на панели макета. Я получаю значение, которое должно быть удалено из базы данных, которая была связана, я знаю, что соединение с базой данных работает (я копирую ее из другой части моей программы). Я просто не могу найти правильный способ удалить ее из поле со списком. Линия, которая вызывает проблемы является:Visual basic - попытка удалить значение из поля со списком

'if date in data is over a week ahead data is not displayed' 
If bookingDay = "Monday" And ((bookingDate - Today()).TotalDays < 7) Then 
    Me.TableLayoutPanel1.Controls("cbomonp" & period).Remove = room 
    If length > 1 Then 
     Me.TableLayoutPanel1.Controls("monp" & period + 1).Remove = room 
    End If 
End If 
+0

Если вы хотите удалить из комбо, удалите combobox * items *. Нет причин скрывать код с помощью 'TableLayoutPanel1.Controls', если вы знаете имя элемента управления. – user3697824

+0

@ user3697824, создается управляющее имя, возможно, используя индекс или тому подобное, поэтому использование собственного поля формы для этого элемента управления может оказаться невозможным. Также может быть, что элемент управления был добавлен во время выполнения, учитывая, что он находится в 'TableLayoutPanel'. – jmcilhinney

ответ

1

Remove является членом Items коллекции ComboBox, а не самого ComboBox. Кроме того, это метод, а не свойство, поэтому вы вызываете его и передаете элемент для удаления, а не присваиваете ему элемент.

DirectCast(Me.TableLayoutPanel1.Controls("monp" & period + 1), ComboBox).Items.Remove(room) 

Если у вас есть Option Strict On, которые вы должны, то бросок требуются, потому что вы получите только Control обратной ссылки формирует Controls коллекцию и что не имеет Items свойства.

+0

Спасибо! IM совершенно новый для Vb в целом, так что все еще изучаю веревки, и я не могу называть индивидуальные combobox, как это должно быть сделано для подобных 30+ списков, но плохо попробуйте DirectCast (Me.TableLayoutPanel1.Controls («monp» & period + 1), ComboBox) .Items.Remove (room), когда я возвращаюсь в колледж. Спасибо за ваш отзыв! – Callum

Смежные вопросы