IntelliSense в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
IntelliSense — это вспомогательное средство для написания кода, включающее несколько возможностей: «Список членов», «Сведения о параметрах», «Краткие сведения» и «Завершить слово». Эти возможности помогают получать дополнительные сведения об используемом коде, отслеживать параметры при вводе и добавлять вызовы свойств и методов путем нескольких нажатий клавиш.
Многие аспекты IntelliSense зависят от конкретного языка. Дополнительные сведения о IntelliSense для разных языков см. в разделах «Связанные материалы «.
Список участников
После ввода символа триггера (например, точки ( . ) в управляемом коде или :: в C++) появляется список допустимых членов типа (или пространства имен). Если продолжить вводить символы, список фильтруется таким образом, чтобы включать только члены, начинающиеся этими символами, или члены, у которых любое слово в имени начинается этими символами. IntelliSense также выполняет сопоставление «верблюжьего» стиля, поэтому вы можете просто ввести первую букву каждого слова с «верблюжьим» стилем в имени члена, чтобы просмотреть список совпадений.
После выбора элемента, его можно вставить в код, нажав клавишу TAB или введя пробел. При выделении элемента и вводе точки элемент отображается с конечной точкой, которая вызывает еще один список членов. При выделении элемента (но до того, как он будет вставлен) отображаются краткие сведения по элементу.
В списке членов значок слева указывает на тип члена, такой как пространство имен, класс, функция или переменная. Список может быть достаточно длинным; перемещаться вверх и вниз по списку можно с помощью клавиш PAGE UP и PAGE DOWN.

Функцию Список членов можно вызывать вручную, нажав клавиши CTRL+J, выбрав пункт Edit>IntelliSense>Список членов или нажав кнопку Список членов на панели инструментов редактора. При вызове в пустой строке или за пределами распознаваемой области в списке отображаются символы глобального пространства имен.
Чтобы отключить список членов по умолчанию (чтобы он не отображался без специального вызова), перейдите в раздел меню Сервис>Параметры>Все языки и снимите флажок Автоматически отображать список членов. Если требуется отключить список членов только для конкретного языка, перейдите к параметрам Общие для этого языка.
Можно также включить режим подсказки, в котором в код будет вставляться только печатаемый текст. Например, если ввести идентификатор, отсутствующий в списке, и нажать клавишу TAB, в режиме завершения введенный идентификатор был бы заменен записью из списка. Для переключения между режимом завершения и режимом подсказки нажмите CTRL+ALT+ПРОБЕЛ или выберите Изменить>IntelliSense>Переключить режим завершения.
Сведения о параметрах
Функция «Сведения о параметрах» предоставляет сведения о числе параметров, необходимых методу, параметру атрибута универсального типа (в C#) или шаблону (в C++), а также об именах и типах таких параметров.
Выделение параметра полужирным шрифтом указывает на следующий параметр, необходимый при вводе функции. Для перегруженных функций можно использовать клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ для просмотра сведений об альтернативных параметрах для перегрузок функций.

При аннотировании функций и параметров при помощи комментариев XML-документации комментарии будут отображаться в качестве сведений о параметрах. Дополнительные сведения см. в разделе Создание XML-примечаний к коду.
Сведения о параметрах можно вызвать вручную, выбрав Изменить>IntelliSense>Сведения о параметрах, нажав клавиши CTRL+SHIFT+ПРОБЕЛ или кнопку Сведения о параметрах на панели инструментов редактора.
Краткие сведения
Функция «Краткие сведения» отображает полное объявление любого идентификатора в коде.

При выборе члена в поле Список членов для него также отображаются краткие сведения.

Краткие сведения можно открыть вручную, выбрав пункт меню Изменить>IntelliSense>Краткие сведения или нажав клавиши CTRL+K, CTRL+Iили кнопку Краткие сведения на панели инструментов редактора.
Если функция перегружена, IntelliSense может не отображать информацию для всех форм перегрузки.
Чтобы отключить краткие сведения для кода C++, можно перейти в меню Сервис>Параметры>Текстовый редактор>С/С++>Дополнительно и задать для параметра Автоматические краткие сведения значение false .
Завершение слов
Функция «Завершить слово» завершает оставшуюся часть имени переменной, команды или функции после ввода достаточного количества символов для однозначного определения термина. Чтобы вызвать функцию «Завершить слово», можно выбрать пункт меню Изменить>IntelliSense>Завершить слово либо нажать клавиши CTRL+ПРОБЕЛ или кнопку Завершить слово на панели инструментов редактора.
Параметры IntelliSense
Параметры IntelliSense включены по умолчанию. Чтобы отключить их, перейдите к разделу «Параметры >>текста» в текстовом редакторе>«Все языки» и отмените выбор сведений о параметрах или автоматических элементов списка, если вы не хотите использовать функцию «Элементы списка».
Если вы хотите изменить внешний вид элементов пользовательского интерфейса в Visual Studio, перейдите в раздел » >Параметры>параметров среды>» и «Цвета». Дополнительные сведения об этих параметрах и взаимодействии с ними см . в диалоговом окне «Шрифты и цвета», «Среда», «Параметры».
Значки IntelliSense
Значки в IntelliSense могут передавать дополнительные значения с помощью модификаторов значков. Это звезды, сердечки и замки, расположенные поверх значка объекта, которые означают защищенное, внутреннее или закрытое использование соответственно.
| Icon | Специальные возможности | Description |
|---|---|---|
![]() |
Открытый класс | Неограниченный доступ. |
![]() |
Защищенный класс | Доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса. |
![]() |
Защищенный внутренний класс | Доступ ограничен текущей сборкой или типами, которые являются производными от содержащего класса. |
![]() |
Внутренний класс | Доступ ограничен текущей сборкой. |
![]() |
Закрытый класс | Доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса в текущей сборке. (Доступно с версии C# 7.2.) |
Устранение неполадок IntelliSense
В некоторых случаях параметры IntelliSense могут не работать должным образом.
Курсор находится под ошибкой кода. Если в коде над курсором имеется неполная функция или другая ошибка, функция IntelliSense может перестать работать, поскольку ей не удается проанализировать элементы кода. Для устранения этой проблемы можно отметить соответствующий код комментарием.
Курсор находится в комментарии к коду. Если курсор находится в комментарии в файле исходного кода, вы не сможете использовать IntelliSense.
Курсор находится в строковом литерале. Вы не сможете использовать IntelliSense, если курсор находится внутри кавычек, в которые заключен строковый литерал, как показано в следующем примере:
MessageBox( hWnd, "String literal|")
Автоматические параметры отключены. По умолчанию функция IntelliSense работает автоматически, но ее можно отключить. Вы можете вызывать функцию IntelliSense, даже если автоматическое завершение операторов отключено.
Связанный контент
- C# IntelliSense
- Visual Basic IntelliSense
- IntelliSense для JavaScript
- Написание и рефакторинг кода (C++)
- Создание XML-примечаний к коду
Пошаговое руководство. Отображение подсказок QuickInfo
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
QuickInfo — это функция IntelliSense, которая отображает сигнатуры и описания методов при перемещении указателя на имя метода. Вы можете реализовать такие функции на основе языка, как QuickInfo, определив идентификаторы, для которых требуется предоставить описания QuickInfo, а затем создав подсказку, в которой будет отображаться содержимое. Вы можете определить QuickInfo в контексте языковой службы или определить собственное расширение имени файла и тип контента и отобразить QuickInfo только для этого типа или отобразить QuickInfo для существующего типа контента (например, «текст»). В этом пошаговом руководстве показано, как отобразить QuickInfo для типа контента «text».
В примере QuickInfo в этом пошаговом руководстве отображаются подсказки при перемещении указателя на имя метода. Для реализации этих четырех интерфейсов требуется:
- исходный интерфейс
- интерфейс поставщика источника
- интерфейс контроллера
- интерфейс поставщика контроллера Поставщики исходных и контроллеров являются компонентами компонента Managed Extensibility Framework (MEF), и отвечают за экспорт классов источника и контроллера и импорта служб и брокеров, таких как ITextBufferFactoryService, который создает текстовый буфер подсказки и IQuickInfoBroker, который активирует сеанс QuickInfo. В этом примере источник QuickInfo использует жестко закодированный список имен и описаний методов, но в полных реализациях языковая служба и документация по языку отвечают за предоставление этого содержимого.
Создание проекта MEF
Создание проекта MEF
- Создайте проект VSIX на C#. (В Диалоговое окно «Новый проект» , выберите Visual C# / Расширяемость, а затем ПРОЕКТ VSIX.) Назовите решение QuickInfoTest .
- Добавьте в проект шаблон элемента классификатора редактора. Дополнительные сведения: Создание расширения с помощью шаблона элемента редактора.
- Удалите файлы существующих классов.
Реализация источника QuickInfo
Источник QuickInfo отвечает за сбор набора идентификаторов и их описания и добавление содержимого в текстовый буфер подсказки при обнаружении одного из идентификаторов. В этом примере идентификаторы и их описания просто добавляются в исходный конструктор.
Реализация источника QuickInfo
- Добавьте файл класса с именем TestQuickInfoSource .
- Добавьте ссылку на Microsoft.VisualStudio.Language.IntelliSense.
- Добавьте приведенные ниже импортированные данные.
using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.Composition; using Microsoft.VisualStudio.Language.Intellisense; using Microsoft.VisualStudio.Text; using Microsoft.VisualStudio.Text.Editor; using Microsoft.VisualStudio.Text.Operations; using Microsoft.VisualStudio.Text.Tagging; using Microsoft.VisualStudio.Utilities;
Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports System.Collections.ObjectModel Imports System.ComponentModel.Composition Imports Microsoft.VisualStudio.Language.Intellisense Imports Microsoft.VisualStudio.Text Imports Microsoft.VisualStudio.Text.Editor Imports Microsoft.VisualStudio.Text.Operations Imports Microsoft.VisualStudio.Text.Tagging Imports Microsoft.VisualStudio.Utilities
internal class TestQuickInfoSource : IQuickInfoSource
Friend Class TestQuickInfoSource Implements IQuickInfoSource
private TestQuickInfoSourceProvider m_provider; private ITextBuffer m_subjectBuffer; private Dictionary m_dictionary;
Private m_provider As TestQuickInfoSourceProvider Private m_subjectBuffer As ITextBuffer Private m_dictionary As Dictionary(Of String, String)
public TestQuickInfoSource(TestQuickInfoSourceProvider provider, ITextBuffer subjectBuffer) < m_provider = provider; m_subjectBuffer = subjectBuffer; //these are the method names and their descriptions m_dictionary = new Dictionary(); m_dictionary.Add("add", "int add(int firstInt, int secondInt)\nAdds one integer to another."); m_dictionary.Add("subtract", "int subtract(int firstInt, int secondInt)\nSubtracts one integer from another."); m_dictionary.Add("multiply", "int multiply(int firstInt, int secondInt)\nMultiplies one integer by another."); m_dictionary.Add("divide", "int divide(int firstInt, int secondInt)\nDivides one integer by another."); >
Public Sub New(ByVal provider As TestQuickInfoSourceProvider, ByVal subjectBuffer As ITextBuffer) m_provider = provider m_subjectBuffer = subjectBuffer 'these are the method names and their descriptions m_dictionary = New Dictionary(Of String, String)() m_dictionary.Add("add", "int add(int firstInt, int secondInt)" & vbLf & "Adds one integer to another.") m_dictionary.Add("subtract", "int subtract(int firstInt, int secondInt)" & vbLf & "Subtracts one integer from another.") m_dictionary.Add("multiply", "int multiply(int firstInt, int secondInt)" & vbLf & "Multiplies one integer by another.") m_dictionary.Add("divide", "int divide(int firstInt, int secondInt)" & vbLf & "Divides one integer by another.") End Sub
public void AugmentQuickInfoSession(IQuickInfoSession session, IList qiContent, out ITrackingSpan applicableToSpan) < // Map the trigger point down to our buffer. SnapshotPoint? subjectTriggerPoint = session.GetTriggerPoint(m_subjectBuffer.CurrentSnapshot); if (!subjectTriggerPoint.HasValue) < applicableToSpan = null; return; >ITextSnapshot currentSnapshot = subjectTriggerPoint.Value.Snapshot; SnapshotSpan querySpan = new SnapshotSpan(subjectTriggerPoint.Value, 0); //look for occurrences of our QuickInfo words in the span ITextStructureNavigator navigator = m_provider.NavigatorService.GetTextStructureNavigator(m_subjectBuffer); TextExtent extent = navigator.GetExtentOfWord(subjectTriggerPoint.Value); string searchText = extent.Span.GetText(); foreach (string key in m_dictionary.Keys) < int foundIndex = searchText.IndexOf(key, StringComparison.CurrentCultureIgnoreCase); if (foundIndex >-1) < applicableToSpan = currentSnapshot.CreateTrackingSpan ( //querySpan.Start.Add(foundIndex).Position, 9, SpanTrackingMode.EdgeInclusive extent.Span.Start + foundIndex, key.Length, SpanTrackingMode.EdgeInclusive ); string value; m_dictionary.TryGetValue(key, out value); if (value != null) qiContent.Add(value); else qiContent.Add(""); return; >> applicableToSpan = null; >
Public Sub AugmentQuickInfoSession(ByVal session As IQuickInfoSession, ByVal qiContent As IList(Of Object), ByRef applicableToSpan As ITrackingSpan) Implements IQuickInfoSource.AugmentQuickInfoSession ' Map the trigger point down to our buffer. Dim subjectTriggerPoint As System.Nullable(Of SnapshotPoint) = session.GetTriggerPoint(m_subjectBuffer.CurrentSnapshot) If Not subjectTriggerPoint.HasValue Then applicableToSpan = Nothing Exit Sub End If Dim currentSnapshot As ITextSnapshot = subjectTriggerPoint.Value.Snapshot Dim querySpan As New SnapshotSpan(subjectTriggerPoint.Value, 0) 'look for occurrences of our QuickInfo words in the span Dim navigator As ITextStructureNavigator = m_provider.NavigatorService.GetTextStructureNavigator(m_subjectBuffer) Dim extent As TextExtent = navigator.GetExtentOfWord(subjectTriggerPoint.Value) Dim searchText As String = extent.Span.GetText() For Each key As String In m_dictionary.Keys Dim foundIndex As Integer = searchText.IndexOf(key, StringComparison.CurrentCultureIgnoreCase) If foundIndex > -1 Then 'applicableToSpan = currentSnapshot.CreateTrackingSpan(querySpan.Start.Add(foundIndex).Position, 9, SpanTrackingMode.EdgeInclusive) applicableToSpan = currentSnapshot.CreateTrackingSpan(extent.Span.Start + foundIndex, key.Length, SpanTrackingMode.EdgeInclusive) Dim value As String = "" m_dictionary.TryGetValue(key, value) If value IsNot Nothing Then qiContent.Add(value) Else qiContent.Add("") End If Exit Sub End If Next applicableToSpan = Nothing End Sub
private bool m_isDisposed; public void Dispose() < if (!m_isDisposed) < GC.SuppressFinalize(this); m_isDisposed = true; >>
Private m_isDisposed As Boolean Public Sub Dispose() Implements IDisposable.Dispose If Not m_isDisposed Then GC.SuppressFinalize(Me) m_isDisposed = True End If End Sub
Реализация поставщика источника QuickInfo
Поставщик источника QuickInfo служит в первую очередь для экспорта в качестве части компонента MEF и создания экземпляра источника QuickInfo. Так как это часть компонента MEF, она может импортировать другие компоненты MEF.
Реализация поставщика источника QuickInfo
- Объявите поставщик источника QuickInfo с именем TestQuickInfoSourceProvider , который реализует IQuickInfoSourceProviderи экспортирует его с NameAttribute помощью источника ToolTip QuickInfo, параметра OrderAttribute Before=»default» и ContentTypeAttribute «text».
[Export(typeof(IQuickInfoSourceProvider))] [Name("ToolTip QuickInfo Source")] [Order(Before = "Default Quick Info Presenter")] [ContentType("text")] internal class TestQuickInfoSourceProvider : IQuickInfoSourceProvider
_ _ _ _ Friend Class TestQuickInfoSourceProvider Implements IQuickInfoSourceProvider
[Import] internal ITextStructureNavigatorSelectorService NavigatorService < get; set; >[Import] internal ITextBufferFactoryService TextBufferFactoryService
Private _NavigatorService As ITextStructureNavigatorSelectorService _ Friend Property NavigatorService() As ITextStructureNavigatorSelectorService Get Return _NavigatorService End Get Set(ByVal value As ITextStructureNavigatorSelectorService) _NavigatorService = value End Set End Property Private _TextBufferFactoryService As ITextBufferFactoryService _ Friend Property TextBufferFactoryService() As ITextBufferFactoryService Get Return _TextBufferFactoryService End Get Set(ByVal value As ITextBufferFactoryService) _TextBufferFactoryService = value End Set End Property
public IQuickInfoSource TryCreateQuickInfoSource(ITextBuffer textBuffer)
Public Function TryCreateQuickInfoSource(ByVal textBuffer As ITextBuffer) As IQuickInfoSource Implements IQuickInfoSourceProvider.TryCreateQuickInfoSource Return New TestQuickInfoSource(Me, textBuffer) End Function
Реализация контроллера QuickInfo
Контроллеры QuickInfo определяют, когда отображается QuickInfo. В этом примере QuickInfo отображается, когда указатель находится над словом, соответствующим одному из имен методов. Контроллер QuickInfo реализует обработчик событий наведения указателя мыши, который активирует сеанс QuickInfo.
Реализация контроллера QuickInfo
- Объявите класс, реализующий IIntellisenseControllerи назовите его TestQuickInfoController .
internal class TestQuickInfoController : IIntellisenseController
Friend Class TestQuickInfoController Implements IIntellisenseController
private ITextView m_textView; private IList m_subjectBuffers; private TestQuickInfoControllerProvider m_provider; private IQuickInfoSession m_session;
Private m_textView As ITextView Private m_subjectBuffers As IList(Of ITextBuffer) Private m_provider As TestQuickInfoControllerProvider Private m_session As IQuickInfoSession
internal TestQuickInfoController(ITextView textView, IList subjectBuffers, TestQuickInfoControllerProvider provider)
Friend Sub New(ByVal textView As ITextView, ByVal subjectBuffers As IList(Of ITextBuffer), ByVal provider As TestQuickInfoControllerProvider) m_textView = textView m_subjectBuffers = subjectBuffers m_provider = provider AddHandler m_textView.MouseHover, AddressOf Me.OnTextViewMouseHover End Sub
private void OnTextViewMouseHover(object sender, MouseHoverEventArgs e) < //find the mouse position by mapping down to the subject buffer SnapshotPoint? point = m_textView.BufferGraph.MapDownToFirstMatch (new SnapshotPoint(m_textView.TextSnapshot, e.Position), PointTrackingMode.Positive, snapshot =>m_subjectBuffers.Contains(snapshot.TextBuffer), PositionAffinity.Predecessor); if (point != null) < ITrackingPoint triggerPoint = point.Value.Snapshot.CreateTrackingPoint(point.Value.Position, PointTrackingMode.Positive); if (!m_provider.QuickInfoBroker.IsQuickInfoActive(m_textView)) < m_session = m_provider.QuickInfoBroker.TriggerQuickInfo(m_textView, triggerPoint, true); >> >
Private Sub OnTextViewMouseHover(ByVal sender As Object, ByVal e As MouseHoverEventArgs) 'find the mouse position by mapping down to the subject buffer Dim point As System.Nullable(Of SnapshotPoint) = m_textView.BufferGraph.MapDownToFirstMatch(New SnapshotPoint(m_textView.TextSnapshot, e.Position), PointTrackingMode.Positive, Function(snapshot) m_subjectBuffers.Contains(snapshot.TextBuffer), PositionAffinity.Predecessor) If point IsNot Nothing Then Dim triggerPoint As ITrackingPoint = point.Value.Snapshot.CreateTrackingPoint(point.Value.Position, PointTrackingMode.Positive) If Not m_provider.QuickInfoBroker.IsQuickInfoActive(m_textView) Then m_session = m_provider.QuickInfoBroker.TriggerQuickInfo(m_textView, triggerPoint, True) End If End If End Sub
public void Detach(ITextView textView) < if (m_textView == textView) < m_textView.MouseHover -= this.OnTextViewMouseHover; m_textView = null; >>
Public Sub Detach(ByVal textView As ITextView) Implements IIntellisenseController.Detach If m_textView Is textView Then AddHandler m_textView.MouseHover, AddressOf Me.OnTextViewMouseHover m_textView = Nothing End If End Sub
public void ConnectSubjectBuffer(ITextBuffer subjectBuffer) < >public void DisconnectSubjectBuffer(ITextBuffer subjectBuffer)
Public Sub ConnectSubjectBuffer(ByVal subjectBuffer As ITextBuffer) Implements IIntellisenseController.ConnectSubjectBuffer End Sub Public Sub DisconnectSubjectBuffer(ByVal subjectBuffer As ITextBuffer) Implements IIntellisenseController.DisconnectSubjectBuffer End Sub
Реализация поставщика контроллера QuickInfo
Поставщик контроллера QuickInfo служит главным образом для экспорта в качестве части компонента MEF и создания экземпляра контроллера QuickInfo. Так как это часть компонента MEF, она может импортировать другие компоненты MEF.
Реализация поставщика контроллера QuickInfo
- Объявите класс с именем TestQuickInfoControllerProvider , реализующий IIntellisenseControllerProviderи экспортируйте его с NameAttribute помощью контроллера QuickInfo ToolTip и ContentTypeAttribute текстового элемента:
[Export(typeof(IIntellisenseControllerProvider))] [Name("ToolTip QuickInfo Controller")] [ContentType("text")] internal class TestQuickInfoControllerProvider : IIntellisenseControllerProvider
_ _ _ Friend Class TestQuickInfoControllerProvider Implements IIntellisenseControllerProvider
[Import] internal IQuickInfoBroker QuickInfoBroker
Private _QuickInfoBroker As IQuickInfoBroker _ Friend Property QuickInfoBroker() As IQuickInfoBroker Get Return _QuickInfoBroker End Get Set(ByVal value As IQuickInfoBroker) _QuickInfoBroker = value End Set End Property
public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList subjectBuffers)
Public Function TryCreateIntellisenseController(ByVal textView As ITextView, ByVal subjectBuffers As IList(Of ITextBuffer)) As IIntellisenseController Implements IIntellisenseControllerProvider.TryCreateIntellisenseController Return New TestQuickInfoController(textView, subjectBuffers, Me) End Function
Сборка и проверка кода
Чтобы протестировать этот код, создайте решение QuickInfoTest и запустите его в экспериментальном экземпляре.
Создание и тестирование решения QuickInfoTest
- Постройте решение.
- При запуске этого проекта в отладчике запускается второй экземпляр Visual Studio.
- Создайте текстовый файл и введите текст, включающий слова «добавить» и «вычитать».
- Переместите указатель на один из вхождения «add». Подпись и описание add метода должны отображаться.
Связанный контент
Как настроить подсказки в VS Code?
Попробовал поработать на VS Code. Всё нравится, но максимально бесит работа подсказок. Можно ли настроить их?
Из основных проблем:
-лишние методы(типа ввожу «console.» и в списке предлагаемых вылазит «length»)
-отображение кучи лишних переменных(в подсказках показываются переменные из других функций, свойства других объектов).
Можно ли сделать подсказки в VS Code более адекватными?
- Вопрос задан более трёх лет назад
- 37225 просмотров
Комментировать
Решения вопроса 2

Egorian @Egorian Автор вопроса
Короче, как всегда. Доки наше всё. https://code.visualstudio.com/docs/editor/intellisense
Тут можно покопаться в настройках и настроить подсказки на свой вкус
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Ищу работу. Контакты в профиле.
В корень проекта положить tsconfig.json
< "compilerOptions": < "allowJs": true, "alwaysStrict": true, "baseUrl": ".", "emitDecoratorMetadata": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "target": "ESNext", "lib": [ "dom", "es2017" ] >, "exclude": [ "static", "build", "dist", "node_modules" ] >
+
Установите в зависимости проекта типы для библиотек, которые идут без типов .d.ts в комплекте https://www.npmjs.com/~types
P.S. Подсказки в vscode лучшие.
Tool Tip Класс
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет небольшое прямоугольное всплывающее окно, в котором отображается краткое описание назначения элемента управления, когда пользователь наводит указатель мыши на элемент управления.
public ref class ToolTip sealed : System::ComponentModel::Component, System::ComponentModel::IExtenderProvider
public ref class ToolTip : System::ComponentModel::Component, System::ComponentModel::IExtenderProvider
public sealed class ToolTip : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider
public class ToolTip : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider
type ToolTip = class inherit Component interface IExtenderProvider
Public NotInheritable Class ToolTip Inherits Component Implements IExtenderProvider
Public Class ToolTip Inherits Component Implements IExtenderProvider
Наследование
Реализации
Примеры
В следующем примере кода создается экземпляр ToolTip класса и он связывается с экземпляром Form , в который создается экземпляр . Затем код инициализирует свойства AutoPopDelayзадержки , InitialDelayи ReshowDelay. Кроме того, экземпляр класса задает свойству ToolTipShowAlways значение , true чтобы разрешить всегда отображать текст подсказки независимо от того, активна ли форма. Наконец, в примере текст подсказки связывается с двумя элементами управления в форме: Button и CheckBox. В примере кода требуется, чтобы метод, определенный в примере, находился в Form объекте , который содержит Button элемент управления с именем button1 и CheckBox элемент управления с именем checkBox1 , а также чтобы метод был вызван из конструктора Formобъекта .
// This example assumes that the Form_Load event handling method // is connected to the Load event of the form. void Form1_Load( Object^ sender, System::EventArgs^ e ) < // Create the ToolTip and associate with the Form container. ToolTip^ toolTip1 = gcnew ToolTip; // Set up the delays for the ToolTip. toolTip1->AutoPopDelay = 5000; toolTip1->InitialDelay = 1000; toolTip1->ReshowDelay = 500; // Force the ToolTip text to be displayed whether or not the form is active. toolTip1->ShowAlways = true; // Set up the ToolTip text for the Button and Checkbox. toolTip1->SetToolTip( this->button1, "My button1" ); toolTip1->SetToolTip( this->checkBox1, "My checkBox1" ); >
// This example assumes that the Form_Load event handling method // is connected to the Load event of the form. private void Form1_Load(object sender, System.EventArgs e) < // Create the ToolTip and associate with the Form container. ToolTip toolTip1 = new ToolTip(); // Set up the delays for the ToolTip. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 1000; toolTip1.ReshowDelay = 500; // Force the ToolTip text to be displayed whether or not the form is active. toolTip1.ShowAlways = true; // Set up the ToolTip text for the Button and Checkbox. toolTip1.SetToolTip(this.button1, "My button1"); toolTip1.SetToolTip(this.checkBox1, "My checkBox1"); >
' This example assumes that the Form_Load event handling method ' is connected to the Load event of the form. Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load ' Create the ToolTip and associate with the Form container. Dim toolTip1 As New ToolTip() ' Set up the delays for the ToolTip. toolTip1.AutoPopDelay = 5000 toolTip1.InitialDelay = 1000 toolTip1.ReshowDelay = 500 ' Force the ToolTip text to be displayed whether or not the form is active. toolTip1.ShowAlways = True ' Set up the ToolTip text for the Button and Checkbox. toolTip1.SetToolTip(Me.button1, "My button1") toolTip1.SetToolTip(Me.checkBox1, "My checkBox1") End Sub
Комментарии
ToolTip С помощью класса можно предоставлять пользователю подсказки, когда пользователь помещает указатель на элемент управления. Класс ToolTip обычно используется для оповещения пользователей о предполагаемом использовании элемента управления. Например, можно указать текст подсказки для TextBox элемента управления, который принимает имя, указав формат имени, которое будет введено в элемент управления . Помимо предоставления указаний, можно также использовать класс для предоставления ToolTip сведений о состоянии времени выполнения. Например, класс можно использовать для ToolTip отображения данных о скорости подключения и качестве линий, когда пользователь перемещает указатель на элемент управления, отображающий состояние подключения к Интернету PictureBox .
Класс ToolTip можно использовать в любом контейнере. Чтобы явно указать контейнер, используйте ToolTip(IContainer) конструктор . Один ToolTip компонент обычно используется для создания подсказок для нескольких элементов управления в одной форме. После создания используйте отдельный вызов метода , чтобы SetToolTip связать отображаемый ToolTipтекст подсказки с отдельным элементом управления. Затем, когда пользователь перемещает указатель на элемент управления, отображается подсказка с текстом. Для одного элемента управления можно вызвать SetToolTip несколько раз, чтобы изменить текст, связанный с элементом управления. Чтобы получить текст, связанный с элементом управления, используйте GetToolTip метод . Чтобы удалить все связи текста подсказки с экземпляром ToolTip класса , используйте RemoveAll метод .
Текст подсказки не отображается для отключенных элементов управления. Если ShowAlways для свойства не задано значение true , подсказки не отображаются, если их контейнер неактивен.
Класс ToolTip предоставляет следующие свойства и методы для изменения поведения и внешнего вида подсказки по умолчанию.
| Категория | Связанные члены |
|---|---|
| Отображение вручную | Active, Show, Hide, ShowAlways, Popup, StopTimer |
| Время подсказки | AutoPopDelay, InitialDelay, ReshowDelay, AutomaticDelay, StopTimer |
| Content | SetToolTip, GetToolTip, StripAmpersands, ToolTipIcon, ToolTipTitle, RemoveAll |
| Внешний вид | BackColor, ForeColor, IsBalloon, OwnerDraw, UseAnimation, UseFading |
Если вы хотите отключить весь текст подсказки, чтобы его нельзя было отобразить в приложении, можно использовать Active свойство . Обычно подсказка рисуется операционной системой, но чтобы настроить внешний ToolTipвид , можно присвоить свойству OwnerDraw значение true и обработать Draw событие.
Класс ToolTipTitle реализует System.ComponentModel.IExtenderProvider интерфейс , который имеет один метод , CanExtend. Подсказки расширяют элементы управления в одной форме во время разработки, добавляя ToolTip свойство . Дополнительные сведения о поставщиках расширителя см. в разделе Поставщики расширителя.
Конструкторы
Инициализирует новый экземпляр класса ToolTip без указания контейнера.
Инициализирует новый экземпляр класса ToolTip, используя заданный контейнер.
Свойства
Возвращает или задает значение, указывающее, активна ли в настоящий момент всплывающая подсказка.
Возвращает или задает автоматическую задержку всплывающей подсказки.
Возвращает или задает интервал времени, в течение которого всплывающая подсказка отображается на экране, когда указатель мыши останавливается в границах элемента управления с текстом данной подсказки.
Возвращает или задает цвет фона для всплывающей подсказки.
Возвращает значение, показывающее, может ли компонент вызывать событие.
Возвращает объект IContainer, который содержит коллекцию Component.
Возвращает параметры создания для окна всплывающей подсказки.
Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.
Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.
Возвращает или задает цвет для всплывающей подсказки.
Возвращает или задает интервал времени перед появлением всплывающей подсказки.
Возвращает или задает значение, указывающее, должна ли всплывающая подсказка использовать всплывающее окно.
Возвращает или задает значение, указывающее, выводится ли всплывающая подсказка операционной системой или кодом разработчика.
Возвращает или задает интервал времени, который должен пройти перед появлением окна очередной всплывающей подсказки при перемещении указателя мыши с одного элемента управления на другой.
Возвращает или задает значение, указывающее, отображается ли окно всплывающей подсказки, если родительский элемент управления не активен.
Получает или задает ISite объекта Component.
Возвращает или задает значение, определяющее способ обработки знаков амперсанда (&).
Получает или задает объект, содержащий предоставленные программистом данные, связанные с объектом ToolTip.
Возвращает или задает значение, определяющее тип значка, отображаемого вместе с текстом всплывающей подсказки.
Возвращает или задает заголовок окна всплывающей подсказки.
Возвращает или задает значение, определяющее, должен ли при отображении всплывающей подсказки использоваться эффект анимации.
Возвращает или задает значение, определяющее, должен ли при отображении всплывающей подсказки использоваться эффект затухания.
Методы
Возвращает значение true , если всплывающая подсказка может предложить свойство средства расширения для заданного целевого компонента.
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.
Освобождает все ресурсы, занятые модулем Component.
Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.
Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.
Определяет, равен ли указанный объект текущему объекту.
Освобождает неуправляемые ресурсы и выполняет другие операции очистки перед утилизацией объекта Cursor во время сборки мусора.
Служит хэш-функцией по умолчанию.
Является устаревшей.
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.
Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.
Извлекает текст всплывающей подсказки, связанный с указанным элементом управления.
Возвращает объект Type для текущего экземпляра.
Скрывает заданное окно всплывающей подсказки.
Является устаревшей.
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.
Создает неполную копию текущего объекта Object.
Создает неполную копию текущего объекта MarshalByRefObject.
Удаляет весь текст всплывающей подсказки, связанной с компонентом ToolTip.
Связывает текст всплывающей подсказки с указанным элементом управления.
Задает текст всплывающей подсказки, связанный с указанным элементом управления, и отображает всплывающую подсказку в модальном режиме.
Задает текст всплывающей подсказки, связанный с указанным элементом управления, а затем отображает всплывающую подсказку в течение заданного времени.
Задает текст всплывающей подсказки, связанной с указанным элементом управления, а затем отображает всплывающую подсказку в модальном режиме в заданной относительной позиции.
Задает текст всплывающей подсказки, связанной с указанным элементом управления, а затем отображает всплывающую подсказку в течение указанного времени в заданной относительной позиции.
Задает текст всплывающей подсказки, связанной с указанным элементом управления, а затем отображает всплывающую подсказку в модальном режиме в заданной относительной позиции.
Задает текст всплывающей подсказки, связанной с указанным элементом управления, а затем отображает всплывающую подсказку в течение указанного времени в заданной относительной позиции.
Останавливает таймер, скрывающий отображенные всплывающие подсказки.
Возвращает строковое представление для этого элемента управления.
События
Возникает при удалении компонента путем вызова метода Dispose().
Происходит при отображении всплывающей подсказки, если для свойства OwnerDraw установлено значение true , а для свойства IsBalloon — значение false .
Происходит перед первоначальным отображением всплывающей подсказки. Это событие по умолчанию для класса ToolTip.
Применяется к
См. также раздел
- ToolTipIcon
- HelpProvider
- Поставщики расширителей
- Компонент ToolTip (Windows Forms)




