Используйте полосу прокрутки для выбора нецелых значений в C#

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

В этом примере используется полоса прокрутки, позволяющая пользователю выбирать нецелые значения от 0 до 100 до ближайшего 1/100-го. Трюк состоит в масштабировании всего на 100.

В этом примере свойство LargeChange имеет полосу прокрутки 100, поэтому нажатие на тело полосы прокрутки изменяет свое значение на 100. Когда вы делите на 100, это делает выбранное значение изменено на 1.00.

Наибольшее значение, которое пользователь может выбрать с помощью полосы прокрутки, это Maximum - LargeChange + 1. Чтобы позволить пользователю выбирать значения от 0 до 10000 (что 100 раз 100) в верхней полосе прокрутки, я устанавливаю Minimum = 0, Maximum = 10099 и LargeChange = 100. Теперь пользователь может выбирать значения от 0 до 10000.

Свойства нижней полосы прокрутки одинаковы, кроме Minimum = 5000.

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

// Отображение 1-го выбранного значения.
private void scrValue_Scroll(object sender, ScrollEventArgs e)
{
    float value = scrValue1.Value / 100f;
    lblValue1.Text = value.ToString("0.00");
}

// Отображение второго выбранного значения.
private void scrValue2_Scroll(object sender, ScrollEventArgs e)
{
    float value = scrValue2.Value / 100f;
    lblValue2.Text = value.ToString("0.00");
}

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

Источник: http://csharphelper.com/blog/2016/02/use-a-scrollbar-to-select-non-integer-values-in-c/

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