Как создать элемент, просто щелкнув раскрывающийся список на панели инструментов, в Visual Studio, для C #?

#c# #vb.net #visual-studio

#c# #vb.net #visual-studio

Вопрос:

Исходя из VB.NET Я редко использую C # в Visual Studio, поэтому я знаю, что это может быть вопрос n00b, но в окне редактора кода при написании кода на VB вы можете просто щелкнуть имя метода в крайнем правом раскрывающемся списке, и если это выделенный серым цветом элемент, он будетавтоматически сгенерируйте элемент и перейдите к нему; однако в C #, когда я это делаю, он просто открывает этот выбранный элемент в окне кода конструктора…

Есть ли способ повторить то же поведение VB в окне кода C #?

Для справки, это то, что я имею в виду:

введите описание изображения здесь

Обновление со ссылкой на один из моих комментариев ниже:

введите описание изображения здесь

Комментарии:

1. Я не думаю, что вы правы даже в отношении VB. Я только что проверил панель навигации для формы в VB, и в ней были показаны только методы, которые были фактически реализованы. Те, что в файле конструктора, были выделены серым цветом, а в пользовательском файле и наоборот. Насколько мне известно, единственный экземпляр, в котором VB будет генерировать код из панели навигации, — это обработчики для событий текущего класса или его объявленных полей WithEvents . Поскольку WithEvents в C # нет эквивалента, вы не можете сделать это в C #. Окно свойств используется для создания обработчиков событий для элементов управления на C #, что вы также можете сделать в VB.

2. @jmcilhinney хммм, я знаю, что, вероятно, я здесь путаю свои слова (между подразделениями, методами, обработчиками и т. Д… привет… Я самоучка: p) но я добавил скриншот к вопросу, чтобы еще больше показать, что я имею в виду; в VB, если вы нажмете любой метод из 2-го столбца (который C # даже не указан во втором столбце), вы получите хороший список всех доступных событий для него. Если вы нажмете на любой из них, у которого еще нет метода в коде, Он сгенерирует все это (со всеми доступными надлежащими аргументами, handles предложением и т. Д.), В C # ничего этого нет. Это то, что вы имеете в виду?

3. Средний столбец в VB — это не методы. Это объявленные поля WithEvents . Когда вы добавляете элемент управления в конструктор, поле автоматически добавляется в файл кода конструктора и объявляется WithEvents . Добавьте что-то подобное Public WithEvents myDataTable As DataTable в код вашей формы, и вы увидите, что это тоже появляется в этом раскрывающемся списке. В C # нет эквивалента, поэтому в C # не существует функциональности. Оператор C # = эквивалентен AddHandler в VB и является единственным способом подключения обработчиков событий.

4. MenuStrips и StatusStrips работают точно так же в VB и C #. Если есть какая-то разница, я ее не заметил.

5. Дело не в языке. Ваш проект нацелен на .NET Core, а не на .NET Framework. Конструктор WinForms для .NET Core не обладает всеми функциями .NET Framework. При создании проекта вы можете выбрать .NET , который по умолчанию будет нацелен на .NET 5.0 и разрешит выбор других версий .NET Core, или вы можете выбрать .NET Framework , который будет нацелен на .NET Framework 4.8 и более ранние версии. Опция .NET Framework — это то, к чему вы привыкли, но вы выбрали . Опция NET. Если вы хотите переключиться, вам нужно будет создать новый проект, а затем скопировать элементы.