Полоса прокрутки visual studio

Обновлено: 02.07.2024

В формах Windows TextBox играет важную роль. С помощью TextBox пользователь может вводить данные в приложение, оно может быть одной строкой или несколькими строками. В TextBox вам разрешено устанавливать полосы прокрутки при работе с многострочным TextBox с помощью свойства ScrollBars TextBox. Значение по умолчанию этого свойства в форме Windows, вы можете установить это свойство двумя различными способами:

1. Время разработки: это самый простой способ установить свойство ScrollBars TextBox, как показано в следующих шагах:

  • Шаг 1: Создайте форму окна.
    Visual Studio -> Файл -> Создать -> Проект -> WindowsFormApp
  • Шаг 2: Перетащите элемент управления TextBox из панели инструментов и поместите его в форму окна. Вы можете разместить TextBox в любом месте окна формы в соответствии с вашими потребностями. Как показано на рисунке ниже:
  • Шаг 3: После перетаскивания вы перейдете к свойствам элемента управления TextBox, чтобы установить свойство ScrollBars для TextBox.


Выход:

Примечание. Помните, что горизонтальные полосы прокрутки не будут отображаться, если для свойства WordWrap установлено значение true, независимо от значения свойства ScrollBars.

2. Время выполнения: это немного сложнее, чем описанный выше метод. В этом методе вы можете установить свойство ScrollBars TextBox программно с помощью заданного синтаксиса:

Здесь ScrollBars представляют значения перечисления ScrollBars, которые указывают, отображается ли многострочный элемент управления TextBox без полос прокрутки, горизонтальной полосы прокрутки, вертикальной полосы прокрутки или обоих. И он выдаст исключение InvalidEnumArgumentException, если значение, назначенное свойству, не находится в диапазоне допустимых значений для перечисления. Следующие шаги используются для установки свойства ScrollBars TextBox:

  • Шаг 1. Создайте текстовое поле с помощью конструктора TextBox (), предоставляемого классом TextBox.
  • Шаг 2: После создания TextBox установите свойство ScrollBars для TextBox, предоставляемого классом TextBox.
  • Шаг 3: И наконец добавьте этот элемент управления textbox, используя метод Add ().

Компания Microsoft считает, что Visual Studio - это инструмент повышения производительности для разработчиков, а не только место, где можно редактировать код. Поэтому Visual Studio содержит в себе огромный функционал для оказания помощи разработчикам. Visual Studio 2013 призвана помочь разработчикам писать более эффективный и открытый код. Эта статья описывает некоторые из этих функций.

Описание кода

Когда вы исследуете код, зачастую необходимо быстро ознакомиться с реализацией вызываемого метода. Если вы щелкните правой кнопкой мыши по имени вызываемого метода и выберите в контекстном меню команду Go to Definition, Visual Studio откроет файл с реализацией данного метода. Однако, файл, который вы редактировали, окажется уже не в фокусе. Это конечно не непреодолимая проблема, но это неудобно.

Команда Peek Definition позволяет разработчикам просматривать определение метода, не выходя из контекста текущей области редактирования. Чтобы убедиться в этом, щелкните правой кнопкой мыши по имени метода и выберите в контекстном меню команду Peek Definition:

Команда Peek Definition в Visual Studio

Помимо просмотра кода реализации, команда Peek Definition позволяет редактировать его. Наведя курсор мыши на метод в окне кода реализации, вы можете щелкнуть правой кнопкой мыши и выбрать Peek Definition, чтобы углубиться в реализации перегруженных версий этого метода или определения других методов. Когда вы углубляетесь более чем на один уровень, появляется коллекция белых и синих кружочков, позволяющих перемещаться вперед и назад по иерархии вызовов:

Перемещение по нескольким реализациям метода с помощью Peek Definition в Visual Studio

Если вы хотите переместить окно Pick Window (с определением метода), можете использовать значок в закладке с именем файла, справа от названия файла.

Расширенные возможности полосы прокрутки

Расширенная полоса прокрутки - это один из наиболее популярных визуальных компонентов Visual Studio Productivity Power Tools, показывающий информацию о файле, который в данный момент редактируется. С помощью полосы прокрутки можно легко увидеть в каком месте кода находятся ошибки и предупреждения, точки останова, закладки и результаты поиска. На рисунке ниже показаны некоторые цветные маркеры полосы прокрутки:

Цветные маркеры полосы прокрутки Visual Studio

Настройки подсветки полосы прокрутки в Visual Studio

В разделе Behaviour переключатель позволяет выбрать режим вертикальной полосы прокрутки: бар (по умолчанию) или карта. В режиме карты вы можете включить подсказки при просмотре. На рисунке ниже показана полоса прокрутки в режиме карты:

Полоса прокрутки в режиме Map

Исходный код в карте полосы прокрутки предназначен для обеспечения высокого уровня визуального представления кода при редактировании файла, т.е. вы не должны разобрать сам код, а должны просто увидеть его наглядную структуру в документе. Цель этого режима полосы прокрутки заключается в визуальной помощи при навигации по документы с большим объемом кода.

При наведении курсора на полосу прокрутки в режиме Map, слева от курсора отображается всплывающая подсказка с информацией о коде, который располагается в данной части документа:

Подсказка для полосы прокрутки в режиме Map

Идея заключается в удобной функции предварительного просмотра, чтобы вы смогли найти нужный код, не используя при этом прокрутку документа.

Navigate To

Команда Navigate То - мощный инструмент поиска в системе Visual Studio, появившийся в версии 2010 и обеспечивающий альтернативу стандартным функциям поиска символов. Как и команда Find Symbol, команда Navigate То ограничена лишь поиском символов; для того чтобы оценить ее полезность, следует рассмотреть большое количество отличий между нею и командой Find Symbol.

В противоположность команде Find Symbol команда Navigate То выводит результаты по мере того, как пользователь вводит поисковый запрос. Чем больше текста запроса набрано, тем уже становится множество результатов. Дважды щелкнув на одном из результатов, пользователь может закрыть диалоговое окно и перейти к этому результату.

Одно из наиболее важных свойств команды Navigate То заключается в том, как именно она выполняет поиск. Допустим, пользователь ищет метод класса ProductSummary. В этом инструменте поиска пробелы, по существу, играют роль оператора AND, поэтому в ответ на запрос "prod sum" (т.е. на поиск имен prod и sum в одном и том же модуле) команда возвращает класс ProductSummary точно так же, как в ответ на запрос sum prod.

В предыдущих версиях Visual Studio команда Navigate То открывала одноименное модальное окно для поиска. Такой подход является неудобным и отрывает программиста от рабочего процесса написания кода. В Visual Studio 2013 эта команда получила гибкий графический интерфейс. Для запуска поиска Navigate То можно использовать горячие клавиши Ctrl+, или команду меню Edit --> Navigate To, при этом откроется маленькое плавающее окно справа вверху:

Окно Navigate To

Когда вы начинаете вводить символы в строке панели Navigate То, Visual Studio использует семантический поиск для отображения списка совпадений. Другими словами, вместо простого текстового поиска, Visual Studio использует свое понимание классов и методов в коде проекта в качестве релевантного поиска. Клавиша Esc закрывает окно навигации и позволяет вернуться в исходное положение.

Другое уникальное свойство команды Navigate То заключается в том, что она выполняет поиск, используя "верблюжий стиль". Для того чтобы найти класс ProductSummary, можно набрать в запросе PS (прописные буквы из имени), чтобы получить искомый метод в качестве результата - очень мощное свойство, доступное только в этом инструменте поиска.

Мне нужно сделать несколько полос прокрутки в окне, с помощью "scrollbar". Ну и реализовать соответствующие действия при передвижениях этих прокруток! Но проблема в том, что я не могу никак понять и нигде найти - как к ним обращаться. Например для горизонтальных и вертикальных прокруток WM_HSCROLL, WM_VSCROLL. А с помощью чего работать с "scrollbar". Подскажите пожалуйста.

Добавлено через 1 минуту
Задаю прокрутки в окне вот так:

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Полоса прокрутки
Помогите с полосой прокрутки. Весь материал, который нашёл - либо техническая документация по.

Не работает полоса прокрутки
Добрый день всем! У меня такая проблема: ползунок созданной мной полосы прокрутки не.

Вертикальная полоса прокрутки в MessageBox
Как при программировании под Windows в MessageBox сделать вертикальную полосу прокрутки, если.

Вертикальная полоса прокрутки в комбобоксе
// Создание комбобокса ::hWnd = CreateWindowEx(NULL, // По умолчанию.

так у меня будет только 3 скрола горизонтальных. обрабатывать только WM_HSCROLL. и у автора ссылки, который вы мне дали -UI - ведь так и не получилось работать с несколькоми скролами.

Добавлено через 3 минуты
ааа. все - нашел. пока вроде все получается - будут вопросы далее - спрошу.

Добавлено через 45 минут
Вот что я сделал:

и мне выдаются ошибки:
Ошибка 7 error C2196: значение варианта выбора "7" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 192
Ошибка 6 error C2196: значение варианта выбора "6" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 190
Ошибка 9 error C2196: значение варианта выбора "5" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 195
Ошибка 8 error C2196: значение варианта выбора "4" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 194
Ошибка 2 error C2196: значение варианта выбора "3" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 182
Ошибка 4 error C2196: значение варианта выбора "2" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 186
Ошибка 10 error C2196: значение варианта выбора "2" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 225
Ошибка 1 error C2196: значение варианта выбора "1" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 165
Ошибка 3 error C2196: значение варианта выбора "1" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 184
Ошибка 5 error C2196: значение варианта выбора "0" уже используется d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 188
Ошибка 11 error C2048: несколько вариантов, используемых по умолчанию d:\program files (x86)\mvs_проекты_ос\l1f\l1f\l1f.cpp 228 Спасибо, что подсказали, но почему-то скрол все равно не работает((((( не перемещаются они(((((

serggg, а потому что ты накрутил - не пойми чего. Смотри:

Я закомментировал то, что неверно, и написал как правильно. Аналогично обрабатывай и второй скролл. Тогда всё двигается.

Спасибо! Просто я только начинаю работать с таким видом программ и мне не всё понятно. Благодарю!

Добавлено через 5 часов 3 минуты
А есть функция, которая преобразует числовое значение в строку. просто мне нужно передавать значение третьего ползунка в много строчный редактор. я делаю это вот так:

Там где я пометил звёздочками может быть только строка. По сути - туда мне нужно поместить значение s3Pos, но я не могу преобразовать это значение в строку.

Добавлено через 12 минут
Это я понял не подойдет, т. к. каждый раз будет создаваться новое окно редактора. Тогда как мне тут воспользоваться функцией InvzlidateRect(); или нужна какая-то другая.

Добавлено через 2 минуты
или функцией SetDlgItemInt(hWnd, ed, s3Pos, 0). Но ругается на ed, говорит что невозможно преобразовать HWND в int. А (ed)lParam не работает. Как правильно использовать эту функцию.

Добавлено через 56 минут
Вот что у меня получилось. Все работает!
Была поставлена задача: Формируются три полосы просмотра и простой многострочный текстовый редактор. Две полосы управляют третьей: перемещение ползунка одной из них изменяет длину третьей полосы, а перемещение ползунка другой - диапазон изменений позиции ползунка третьей полосы. В окне текстового редактора отображается текущее положение ползунка третьей полосы.
Реализация:

Большое спасибо за помощь UI.

Добавлено через 58 минут
У меня вот еще какой вопрос! Мне нужно: Сформировать вертикальную и горизонтальную полосы просмотра, статическое окно. При перемещении ползунка статическое окон пропорционально перемещается.
Я сделал это вот так:

Все перемещается.
Но статическое окно перемещается только в том диапазоне, в котором будет указан диапазон скроллингов. А как мне привязать диапазон скроллингов к размеру окна. Ну чтобы при их прокрутке статическое окно доходило до края окна в тот момент, когда доходит до края прокрутки определенный скроллинг. И что бы это работало и в уменьшенном окне и в развернутом на весь экран. Подскажите пожалуйста.

Когда вы работаете с длинными файлами кода, может быть трудно запомнить расположение элементов в файле. Вы можете настроить полосу прокрутки в редакторе кода, чтобы лучше понимать, что происходит в коде.

Заметки

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

Откройте страницу параметров Полосы прокрутки. Для этого последовательно выберите Средства > Параметры > Текстовый редактор > Все языки > Полосы прокрутки.

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

  • изменения
  • метки
  • ошибки
  • положение курсора.

Параметр Показывать метки включает точки останова и закладки.

Посмотрите, как он работает. Для этого откройте большой файл кода и замените любой текст, который повторяется в нескольких местах в файле. На полосе прокрутки отображаются результаты замены, поэтому вы сможете отменить операцию, если изменили что-то не то.

Вот как выглядит полоса прокрутки после поиска строки. Обратите внимание, что все экземпляры строки отображаются на полосе прокрутки.

Полоса прокрутки в Visual Studio после поиска строки

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

Полоса прокрутки в Visual Studio после замены строки с ошибками

Режимы отображения

У полосы прокрутки есть два режима: режим полосы и режим карты.

Режим полосы

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

Режим карты

В режиме карты показано миниатюрное изображение строк кода на полосе прокрутки. Вы можете задать ширину столбца карты, выбрав определенное значение для параметра Обзор исходного кода. Чтобы при наведении указателя на карту отображалось более широкое окно предварительного просмотра кода, выберите Показывать подсказку предварительного просмотра. Свернутые области затенены иначе. Они развертываются, если дважды щелкнуть их.

Можно отключить миниатюрное представление кода в режиме карты. Для этого задайте для параметра Обзор исходного кода значение Выкл. Если установлен флажок Показывать подсказку предварительного просмотра, окно предварительного просмотра кода все так же будет отображаться в том расположении на полосе прокрутки, на которое вы наведите указатель. А если щелкнуть эту точку, курсор по-прежнему будет в нее перемещаться.

На следующем изображении показано, как выглядит пример поиска в режиме карты со средней шириной:

Полоса прокрутки Visual Studio в режиме карты

На следующем рисунке показано, как работает параметр Показывать подсказку предварительного просмотра:

Полоса прокрутки Visual Studio и окно с подсказкой

Чтобы изменить цвета, отображаемые в режиме карты, последовательно выберите Сервис > Параметры > Среда > Шрифты и цвета. Затем в разделе Отображаемые элементы выберите любой из элементов, которому предшествует "Overview" (Обзор), измените цвета, а затем нажмите кнопку ОК.

Полосы прокрутки — важная составляющая любой графической среды. Они улучшают наглядность и облегчают работу пользователя. Полосы прокрутки удобны при отображении любых объектов (текста, графики, таблиц, записей баз данных, картинок, Web-страниц), чьи размеры превышают размеры клиентской области программы.

Полосы прокрутки могут быть ориентированы вертикально (для перемещения вверх–вниз) или горизонтально (вперед–назад). Щелчок по стрелкам на концах полосы прокрутки перемещает документ на небольшое расстояние — обычно на одну строку вверх или вниз (для вертикальной полосы прокрутки). Щелчок по области, расположенной между стрелками, вызывает перемещение на большее расстояние. Ползунок перемещается по длине полосы прокрутки, отображая примерное положение видимой части относительно общей длины документа. Для перехода в определенную область документа можно перетащить ползунок мышью. Относительно недавно размер ползунка на полосе прокрутки стал изменяться, отражая пропорцию видимой части ко всему документу.

Полосы прокрутки можно добавить к форме двумя способами. Первый — создать элементы управления типа VScrollBar и HScrollBar и разместить их в любой части клиентской области программы. Работа полос прокрутки настраивается свойствами этих объектов. При использовании таких полос прокрутки инициируются определенные события. Мы будем работать с такими элементами управления в главе 12.

Второй способ проще. Его часто называют автопрокруткой (auto-scroll), и именно его мы используем в этой главе.

Средство автопрокрутки в первую очередь предназначено для программ, размещающих в своей клиентской части различные элементы управления (например, кнопки и текстовые поля). Включить автопрокрутку для формы можно задав свойству AutoScroll значение true. Тогда, если размера клиентской области не хватит для отображения всех элементов управления, как по волшебству возникнут полосы прокрутки и позволят пользователю добраться до других элементов.

Включить автопрокрутку можно и без каких бы то ни было элементов управления. Я рассмотрю оба способа, а вы уж выбирайте.

Читайте также: