C # / Windows формы: связь трекбара и текстового поля с фактором - PullRequest
4 голосов
/ 29 апреля 2009

связывание трекбара и текстового поля очень легко в формах Windows. это так: textBox.DataBindings.Add ("Text", trackBar, "Value");

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

так можно ли связать эти два с коэффициентом 100?

спасибо!

Ответы [ 2 ]

4 голосов
/ 30 апреля 2009

Имеющаяся у вас строка кода добавляет объект Binding в коллекцию DataBindings текстового поля.

Класс Binding имеет события с именами Format и Parse, которые вы можете использовать для выполнения деления (событие Format получает значение из трекбара и форматирует его для текстового поля) и умножение (событие Parse берет значение из текстового поля и масштабирует его для трекбара).

1 голос
/ 17 августа 2012

Вы можете использовать промежуточные переменные, как показано ниже:

    public double v{set;get;}
    public int v100
    {
        set { v = value / 100D; }
        get { return (int)(v* 100D); }
    }

и ослепите их Контролем.

    trackBar.DataBindings.Add(new Binding("Value", PtParams, "v100"));
    textBox.DataBindings.Add(new Binding("Text", PtParams, "v"));
...