Пример #1
0
        private void SetupUIApplicableRange()
        {
            if (rangeAttr != null)
            {
                rangeAttr.GetTrackBarMinMax(IsIntegerType(), out int min, out int max);

                minTrackBar.Minimum     = min;
                minTrackBar.Maximum     = max;
                minTrackBar.LargeChange = Math.Max((minTrackBar.Maximum - minTrackBar.Minimum) / 10, 1);
                minTrackBar.SmallChange = Math.Max((minTrackBar.Maximum - minTrackBar.Minimum) / 100, 1);

                maxTrackBar.Minimum     = min;
                maxTrackBar.Maximum     = max;
                maxTrackBar.LargeChange = Math.Max((minTrackBar.Maximum - minTrackBar.Minimum) / 10, 1);
                maxTrackBar.SmallChange = Math.Max((minTrackBar.Maximum - minTrackBar.Minimum) / 100, 1);
            }
        }
        public override void ControlInsidePropertyItemControlWasCreated()
        {
            base.ControlInsidePropertyItemControlWasCreated();

            var control = (IHCTextBoxNumeric)CreatedControlInsidePropertyItemControl;

            //get range
            var array = Property.GetCustomAttributes(typeof(RangeAttribute), true);

            if (array.Length != 0)
            {
                range = (RangeAttribute)array[0];
            }

            //configure track bar
            if (range != null)
            {
                var trackBar = control.TrackBar;

                trackBarDisableValueChangedEvent = true;
                range.GetTrackBarMinMax(IsInteger(), out int min, out int max);
                trackBar.Minimum                 = min;
                trackBar.Maximum                 = max;
                trackBar.LargeChange             = Math.Max((trackBar.Maximum - trackBar.Minimum) / 10, 1);
                trackBar.SmallChange             = Math.Max((trackBar.Maximum - trackBar.Minimum) / 100, 1);
                trackBarDisableValueChangedEvent = false;

                trackBar.GotFocus     += TrackBar_GotFocus;
                trackBar.LostFocus    += TrackBar_LostFocus;
                trackBar.MouseUp      += TrackBar_MouseUp;
                trackBar.ValueChanged += TrackBar_ValueChanged;
            }

            //disable track bar
            //!!!!может еще каким-то условием показывать/скрывать
            if (range == null)
            {
                control.TrackBar.Enabled = false;
                control.TrackBar.Visible = false;
                control.TextBox.Width    = ((Control)control).Width;
                control.TextBox.Anchor   = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            }
        }