2012-01-14 4 views
-1

Меню прекрасно работает. GenerateMember включен. Проблема в том, что я пытаюсь манипулировать им в коде (чтобы добавить несколько динамических элементов), и я не могу его найти.Где мое главное меню?

MainMenuStrip - null. Меню - null. Он не может быть в элементах управления, потому что он не наследуется от Control.

Где это ???

Просто, чтобы все было ясно: я ищу, чтобы найти меню через код, а не просто зная имя компонента. Я хочу принять любую форму и найти ее.

+0

Где вы с помощью меню? Если вы используете его до его инициализации ('InitializeComponent()', по крайней мере, в VB.NET), это будет 'null'. например Вы не можете сразу назначить его члену класса. – Ryan

+4

Это прямо там !!! Разве ты не видишь это??!? Давай. Как мы должны дать вам ответ, если вы не предоставите достаточную информацию? –

+0

Посмотрите на файл .designer.cs и посмотрите, где находится объявление. Вы говорите, что GenerateMember истинно, но если что-то испортило конструктор, оно все равно может помещать объявление в InitializeComponent() (что и происходит, когда GenerateMember является ложным). Дизайнер далек от совершенства. Это происходит. Иногда вам просто нужно удалить его и начать снова. –

ответ

2

Вы можете попробовать это (предполагая, что только один MenuStrip):

public static MenuStrip FindMenuStrip(Form fromForm) { 
    return fromForm.Controls.OfType<MenuStrip>().FirstOrDefault(); 
} 
Смежные вопросы