2013-08-13 2 views
0

У меня есть два ListBoxes: первая добавляет mainmenuitem как Файл, Правка и т.д. ... Вторых добавляет submenuitems как открытые, новые и т.д.Как добавить пункты меню из выпадающего списка Vb.net/C#

Когда Я хочу два добавить подменю я выбираю их необходимо вывести из первого выпадающего списка, а затем выбрать из второго выпадающего списка, что добавить ...

проблема в том, я получаю эту ошибку

Невозможно привести объект типа 'System.String' для типа 'System.Windows.Forms.MenuItem'.

Код

Dim val As MenuItem 
val = ListBox1.SelectedItem 
val.MenuItems.Add(TextBox2.Text) 

Это код второго списка. Первый работает отлично и добавляет элементы меню, как следует.

Помогите мне сойти с ума.

+0

Пожалуйста, покажите нам код, где вы заполните listbox1 –

ответ

0

ListBox1.SelectedItem возвращает объект (может быть строкой даже). Это не MenuItem. `

+0

Вы можете посмотреть здесь: [ListBox.SelectedItem] (http://msdn.microsoft.com/en-us/library/system.windows.forms. listbox.selecteditem.aspx) Может быть, это поможет вам разобраться. – FelProNet

0

Объявить новый элемент меню в функции добавления.

val.MenuItems.Add(new MenuItem(TextBox2.Text)) 
0

У вас есть проблемы в этой строке:

val = ListBox1.SelectedItem 

val является MenuItem, как вы объявили в Dim val As MenuItem, но ListBox1.SelectedItem является объектом

Более того, эта строка:

val.MenuItems.Add(TextBox2.Text) 

вы должны заменить на:

val.MenuItems.Add(new MenuItem(TextBox2.Text)) 
+0

'ListBox1.SelectedItem' - это' Object', а не 'string', не так ли? – Tim

+0

@ Поверните, что вы правы, обновлено –

+0

Заменена строка кода, а также зафиксировано объявление переменной его объекта. Теперь я получаю новую ошибку. Публичный элемент 'MenuItems' для типа 'String' не найден. –