#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. Если вы хотите переключиться, вам нужно будет создать новый проект, а затем скопировать элементы.