Сделайте слайдер с иглой в C#

Этот пример рисует вертикальную «иголку» в PictureBox, чтобы пользователь мог выбрать значение, как это делает TrackBar. Однако код выполняет весь чертеж, поэтому вы можете контролировать внешний вид слайдера. В этом примере также отображается текущее значение в всплывающей подсказке над слайдером.

Программа использует переменную и две константы для отслеживания значения ползунка и его минимальных и максимально допустимых значений.

Программа использует два метода для преобразования между координатами X в PictureBox и значениями между минимальными и максимально допустимыми значениями.

Это просто математика. Единственный трюк в том, что код вычитает 1 из ширины клиента элемента управления PictureBox, чтобы отобразить самый правый видимый пиксель в PictureBox до самого большого разрешенного значения. Если вы этого не сделаете, тогда, когда пользователь выберет наибольшее допустимое значение, игла отходит от края элемента управления.

Когда пользователь нажимает мышь на PictureBox или перемещает нажатую кнопку мыши над PictureBox, MouseDown или MouseMove Обработчики событий вызывают метод SetValue для обновления значения ползунка.

Когда пользователь освобождает мышь, следующий обработчик событий устанавливает MouseIsDown, поэтому будущие события MouseMove ничего не делают.

Следующий метод SetValue обновляет значение ползунка.

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

Далее, если новое значение и старое значение совпадают, метод выходит.

Если метод не выходит, он сохраняет новое значение и обновляет PictureBox, чтобы он показывал новую позицию иглы. Затем он отображает новое значение в всплывающей подсказке над PictureBox. Наконец, в этом примере код отображает новое значение в метке.

Последний кусок интересного кода - это PictureBox элемент управления Paint.

Этот код просто рисует иглу в текущей позиции.

Источник: http://csharphelper.com/blog/2016/04/make-a-slider-with-a-needle-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *