Visual Studio 2010 IntelliSense не выбирает значение по умолчанию - он просто отмечает его

140

У меня довольно неприятная проблема с IntelliSense в Visual Studio 2010:

Время от времени (но не всегда - просто вне моего контроля) движок Intellisense выбирает «пометить» вариант вместо того, чтобы фактически выбирать его. Это означает, что вместо того, e n Enterчтобы печатать, чтобы получить доступ к опции по умолчанию, начинающейся с «En ...», я должен печатать e n down Enter.

Обычно это работает какое-то время, а затем внезапно возвращается то поведение, которое я хочу. Я пришел к выводу, что где-то есть параметр, который устанавливается автоматически, и я не знаю, как его контролировать.

Как мне убедиться, что опция по умолчанию всегда выбрана, а не просто «отмечена»?

Для справки: это Visual Studio 2010 RC с CodeRush Xpress 10.1.

Томас Ашан
источник
@devio: вы когда-нибудь узнали почему?
Томас Ашан

Ответы:

277

Попробуйте Ctrl- Alt- Space.

обнаружил, что в Connect , и, похоже, у меня работает

девио
источник
2
Статьи Microsoft обычно исчезают через некоторое время. Было бы неплохо объяснить немного, почему и как
AaA 06
78

Его также можно изменить, перейдя в Edit -> IntelliSense -> ToggleCompletionMode.

Мачет
источник
2
плюс один для поиска альтернативного способа для тех, кто, возможно, изменил свои ярлыки.
Дэниел Кассерли
1
Спасибо. Я мог бы проигнорировать Ctrl + Alt + Space, думая, что это никогда не будет постоянным исправлением, но это повлияет только на то, что вы сейчас набираете. Хотя оказывается, что это то же самое, но это привлекло мое внимание и помогает мне понять, что я делаю.
Timo
6
vs2017, все еще работает. И он все равно отключается случайным образом ... эта ошибка существует уже давно.
Дуглас Гаскелл
@DouglasGaskell Я не буду списывать со счетов возможность того, что я нажал на Ctrl + Alt + Space вместо того, чтобы менять его случайным образом.
С. Буда
1
Работает с vs2019, который, как я думал, был сломан в какой-то момент. Спасибо, вы берегли мне нервы каждый раз, когда я пишу свойство C #!
Андрей M4n0w4R
19

У меня была та же проблема, но при нажатии TABвсегда выбирается выбор по умолчанию.

кибер-шпион
источник
1
Правда. Но вам все равно нужно нажать на период, чтобы открыть список участников. Один дополнительный шаг :(
Томас Беблар 05
2
@ Томас. Конечно, да - все вышеперечисленные решения полагаются на это. Представьте, если бы этого не произошло. Вы начинаете вводить имя переменной, которое в первых нескольких буквах может соответствовать нескольким переменным с похожими именами, но разными типами, и ВСЕ члены для всех этих типов появляются автоматически. Нажатие клавиши точки может быть дополнительным шагом, но сбережет вам рассудок!
cyberspy
4

Для полноты изложения у этой опции есть кнопка-переключатель на панели инструментов:

Кнопка переключения режима завершения на панели инструментов

Его визуальный статус покажет вам, какой режим завершения выбран в данный момент.

кантон7
источник
Хотя, вероятно, это правда и ценная информация сегодня, я немного впечатлен тем, что вы нашли этот вопрос десятилетней давности, чтобы написать это :)
Томас Ашан,
Он возглавляет список похожих вопросов и довольно хорошо всплывает при поиске. Это все еще актуально, несмотря на то, что ему уже десять лет!
canton7
WTH! Просто и понятно. Спасибо. VS2019.
Болкай
2

Вы можете переключиться в режим IntelliSense с низким уровнем воздействия, просто нажмите Ctrl + Alt + Пробел, и это решит проблему.

rpcalisir
источник
2

По крайней мере, для C ++

Tools / Options / Text Editor / C/C++/ Advanced / IntelliSense

и изменить Member List Commit AggressiveнаTrue

Богдан
источник
1
Большое спасибо! Я сошел с ума, потому что не смог найти эту опцию! Может быть, они могут переименовать эту опцию, потому что она немного скрыта под своим текущим именем. Или, по крайней мере, сделать его активным по умолчанию ...
Lapo