- C windows form progressbar
- Timer
- Индикатор прогресса ProgressBar
- Элемент управления ProgressBar (Windows Forms) ProgressBar Control (Windows Forms)
- в этом разделе In This Section
- Справочник Reference
- Связанные разделы Related Sections
- C#: ProgressBar или волшебная информирующая полоска
- Progress Bar. Perform Step Метод
- Определение
- Исключения
- Примеры
- Комментарии
- Progress Bar. Value Свойство
- Определение
- Значение свойства
- Исключения
- Примеры
- Комментарии
C windows form progressbar
TrackBar представляет собой элемент, который с помощью перемещения ползунка позволяет вводить числовые значения.
Некоторые важные свойства TrackBar:
Orientation : задает ориентацию ползунка — расположение по горизонтали или по вертикали
TickStyle : задает расположение делений на ползунке
TickFrequency : задает частоту делений на ползунке
Minimum : минимальное возможное значение на ползунке (по умолчанию 0)
Maximum : максимальное возможное значение на ползунке (по умолчанию 10)
Value : текущее значение ползунка. Должно находиться между Minimum и Maximum
Свойство TickStyle может принимать ряд значений:
None : деления отсутствуют
Both : деления расположены по обеим сторонам ползунка
BottomRight : у вертикального ползунка деления находятся справа, а у горизонтального — снизу
TopLeft : у вертикального ползунка деления находятся слева, а у горизонтального — сверху (применяется по умолчанию)
К наиболее важным событиям элемента следует отнести событие Scroll , которое позволяет обработать перемещение ползунка от одного деления к другому. Что может быть полезно, если нам надо, например, устанавливать соответствующую громкость звука в зависимости от значения ползунка, либо какике-нибудь другие настройки:
Timer
Timer является компонентом для запуска действий, повторяющихся через определенный промежуток времени. Хотя он не является визуальным элементом, но его аткже можно перетащить с Панели Инструментов на форму:
Наиболее важные свойства и методы таймера:
Свойство Enabled : при значении true указывает, что таймер будет запускаться вместе с запуском формы
Свойство Interval : указывает интервал в миллисекундах, через который будет срабатывать обработчик события Tick, которое есть у таймера
Метод Start() : запускает таймер
Метод Stop() : останавливает таймер
Для примера определим простую форму, на которую добавим кнопку и таймер. В файле кода формы определим следующий код:
Здесь в конструкторе формы устанавливаются начальные значения для таймера, кнопки и формы.
Через каждый интервал таймера будет срабатывать обработчик timer1_Tick , в котором изменяется положение кнопки по горизонтали с помощью свойства button1.Left . А с помощью дополнительной переменной koef можно управлять направлением движения.
Кроме того, с помощью обраотчика нажатия кнопки button1_Click можно либо остановить таймер (и вместе с ним движение кнопки), либо опять его запустить.
Индикатор прогресса ProgressBar
Элемент ProgressBar служит для того, чтобы дать пользователю информацию о ходе выполнения какой-либо задачи.
Наиболее важые свойства ProgressBar:
Minimum : минимальное возможное значение
Maximum : максимальное возможное значение
Value : текущее значение элемента
Step : шаг, на который изменится значение Value при вызове метода PerformStep
Для имитации работы прогрессбара поместим на форму таймер и в коде формы определим следующий код:
Элемент управления ProgressBar (Windows Forms) ProgressBar Control (Windows Forms)
Элемент управления ToolStripProgressBar заменяет элемент управления ProgressBar и расширяет его функциональные возможности; однако при необходимости элемент управления ProgressBar можно сохранить для обратной совместимости и использования в будущем. The ToolStripProgressBar control replaces and adds functionality to the ProgressBar control; however, the ProgressBar control is retained for both backward compatibility and future use, if you choose.
ProgressBarЭлемент управления Windows Forms показывает ход выполнения действия, отображая соответствующее количество прямоугольников, расположенных на горизонтальной полосе. The Windows Forms ProgressBar control indicates the progress of an action by displaying an appropriate number of rectangles arranged in a horizontal bar. После завершения действия Панель заполняется. When the action is complete, the bar is filled. Индикаторы выполнения обычно используются, чтобы дать пользователю указание о том, как долго ожидать завершения завершенного действия — например, при загрузке большого файла. Progress bars are commonly used to give the user an indication of how long to wait for a protracted action to complete—for instance, when a large file is being loaded.
в этом разделе In This Section
Общие сведения об элементе управления ProgressBar ProgressBar Control Overview
Содержит общие понятия ProgressBar элемента управления, позволяющие графически отображать ход выполнения операции. Introduces the general concepts of the ProgressBar control, which enables you to graphically display the progress of an operation.
Справочник Reference
ProgressBar
Справочная информация о классе и его членах. Provides reference information on the class and its members.
Связанные разделы Related Sections
Элементы управления для использования в формах Windows Forms Controls to Use on Windows Forms
Полный список элементов управления Windows Forms со ссылками на информацию об их применении. Provides a complete list of Windows Forms controls, with links to information on their use.
C#: ProgressBar или волшебная информирующая полоска
Сегодня речь пойдет об использовании в своих программах элемента ProgressBar. Для тех кто в танке — это инфомрер, как правило, отображающий процесс выполнения какого-либо долгого действия. По сути будет рассмотрено два вопроса: «как изменить значение элемента формы из потока» и «как работать с элементом прогресс бар»…
Как всегда начнем с пустого ВинФорм проекта, и добавления на него необходимых элементов: Label, Button, ProgressBar. Не будем заморачиваться по смене стандартных надписей и имен объектов — приступим к решительным действиям.
Данный материал был взят с сайта foolsoft.ru
Так как нам нужно какое-либо трудоемкое действие, то остановимся на умножении большого количества случайных чисел. Нажмем на нашу кнопку два раза и в событии клика по кнопке сгенерируем числа:
В результате имеем десять тысяч случайных чисел. Далее зададим параметры нашего прогресс бара. Так как Мы будем умножать 10000 чисел, то максимальное значение прогресс бара (когда полоска полностью закрашена) очевидно должно быть равно 10000, а текущее значение поставим в ноль.
А далее собственно суть вопроса. Для того что бы приложение продолжало работать без зависания формы в процессе долгой обработки, эту самую обработку стоит выполнять в отдельном потоке. А для того чтобы получить доступ к элементам формы из потока, нужно воспользоваться конструкцией this.Invoke(new ThreadStart(delegate< >));. Имеем:
Данный код создает новый процесс с явным указанием кода, который будет выполняться — пройтись по всем числам, показать в элементе label1 какие два числа мы умножаем и каков результат умножения, увеличивать значение элемента progressBar1 на один каждую итерацию цикла.
Progress Bar. Perform Step Метод
Определение
Увеличивает текущую позицию индикатора хода выполнения на значение свойства Step. Advances the current position of the progress bar by the amount of the Step property.
Исключения
Параметру Style задается значение Marquee. Style is set to Marquee.
Примеры
В следующем примере кода используется ProgressBar элемент управления для просмотра хода выполнения операции копирования файла. The following code example uses a ProgressBar control to display the progress of a file copy operation. В примере используются Minimum Свойства и Maximum для указания диапазона ProgressBar , эквивалентного числу копируемых файлов. The example uses the Minimum and Maximum properties to specify a range for the ProgressBar that is equivalent to the number of files to copy. Код также использует Step свойство с PerformStep методом для увеличения значения объекта ProgressBar при копировании. The code also uses the Step property with the PerformStep method to increment the value of the ProgressBar as a file is copied. В этом примере требуется, чтобы был ProgressBar создан элемент управления pBar1 , созданный в Form , и был создан метод CopyFile (который возвращает логическое значение, указывающее, что операция копирования файла была выполнена успешно), которая выполняет операцию копирования файлов. This example requires that you have a ProgressBar control created called pBar1 that is created within a Form, and that there is a method created called CopyFile (that returns a Boolean value indicating the file copy operation was completed successfully) that performs the file copy operation. Код также требует, чтобы массив строк, содержащих копируемые файлы, был создан и передан в CopyWithProgress метод, определенный в примере, а метод вызывался из другого метода или события в Form . The code also requires that an array of strings containing the files to copy is created and passed to the CopyWithProgress method defined in the example, and that the method is called from another method or event in the Form.
Комментарии
PerformStepМетод увеличивает значение индикатора выполнения на величину, указанную Step свойством. The PerformStep method increments the value of the progress bar by the amount specified by the Step property. Свойство можно использовать Step для указания суммы, с которой каждая выполненная задача в операции изменяет значение индикатора выполнения. You can use the Step property to specify the amount that each completed task in an operation changes the value of the progress bar. Например, при копировании группы файлов может потребоваться присвоить Step свойству значение 1, а Maximum свойству — общему числу копируемых файлов. For example, if you are copying a group of files, you might want to set the value of the Step property to 1 and the value of the Maximum property to the total number of files to copy. При копировании каждого файла можно вызвать PerformStep метод, чтобы увеличить индикатор выполнения на значение Step Свойства. When each file is copied, you can call the PerformStep method to increment the progress bar by the value of the Step property. Если требуется более гибкое управление значением индикатора выполнения, можно использовать Increment метод или задать значение Value свойства напрямую. If you want to have more flexible control of the value of the progress bar, you can use the Increment method or set the value of the Value property directly.
ValueСвойство задает текущую точку ProgressBar . The Value property specifies the current position of the ProgressBar. Если после вызова PerformStep метода Value свойство больше, чем значение Maximum свойства, Value свойство остается в значении Maximum Свойства. If, after calling the PerformStep method, the Value property is greater than the value of the Maximum property, the Value property remains at the value of the Maximum property. Если после вызова PerformStep метода с отрицательным значением, указанным в Step , Value свойство меньше значения Minimum свойства, Value свойство остается в значении Minimum Свойства. If, after calling the PerformStep method with a negative value specified in Step, the Value property is less than the value of the Minimum property, the Value property remains at the value of the Minimum property.
Так как ProgressBar объект, стиль которого имеет значение Marquee , отображает непрерывную полосу прокрутки вместо ее Value , вызов PerformStep не требуется и вызывает исключение InvalidOperationException . Because a ProgressBar object whose style is set to Marquee displays a continuously scrolling bar instead of its Value, calling PerformStep is unnecessary and will raise an InvalidOperationException.
Progress Bar. Value Свойство
Определение
Возвращает или задает текущее положение индикатора выполнения. Gets or sets the current position of the progress bar.
Значение свойства
Это положение находится в пределах диапазона индикатора выполнения. The position within the range of the progress bar. Значение по умолчанию — 0. The default is 0.
Исключения
Заданное значение больше значения свойства Maximum. The value specified is greater than the value of the Maximum property.
-или- -or- Заданное значение меньше значения свойства Minimum. The value specified is less than the value of the Minimum property.
Примеры
В следующем примере кода показано, как использовать Increment метод и Value свойство для увеличения значения объекта ProgressBar в Tick событии объекта Timer . The following code example demonstrates how to use the Increment method and the Value property to increment the value of a ProgressBar in the Tick event of a Timer. В примере также отображается Value свойство в, StatusBarPanel чтобы предоставить текстовое представление объекта ProgressBar . The example also displays the Value property in a StatusBarPanel to provide a textual representation of the ProgressBar. В этом примере предполагается, что у вас есть ProgressBar элемент управления с именем progressBar1 и StatusBar элемент управления, содержащий StatusBarPanel имя statusBarPanel1 . This example requires that you have a ProgressBar control, named progressBar1 , and a StatusBar control that contains a StatusBarPanel, named statusBarPanel1 . TimerИменованный объект time должен быть добавлен в форму в качестве члена. The Timer, named time , must be added to the form as a member.
Комментарии
Минимальное и максимальное значения Value свойства задаются Minimum Maximum свойствами и. The minimum and maximum values of the Value property are specified by the Minimum and Maximum properties. Это свойство позволяет увеличивать или уменьшать значение индикатора выполнения напрямую. This property enables you to increment or decrement the value of the progress bar directly. Чтобы выполнить единообразное увеличение значения ProgressBar элемента управления, можно использовать Step свойство с PerformStep методом. To perform consistent increases in the value of the ProgressBar control you can use the Step property with the PerformStep method. Чтобы увеличить значение индикатора выполнения по различным объемам, используйте Increment метод. To increase the progress bar value by varying amounts, use the Increment method.