C# .NET - Decimal Track Bar - setting value

Asked By Zoki Manas on 06-Jun-06 03:52 AM
Hi..i have something like this
public partial class DecimalTrackBar : System.Windows.Forms.TrackBar
    {
        public DecimalTrackBar()
        {
            InitializeComponent();
        }
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        } 
        /// <summary>  
        /// Clean up any resources being used.  
        /// </summary>  
        protected override void Dispose( bool disposing )  
        {  
            if( disposing )  
            {  
                if(components != null)  
                {  
                    components.Dispose();  
                }  
            }  
            base.Dispose( disposing );  
        }  
        private void RecalcValue()  
        {  
            Value = (decimal)(base.Value * factor);  
        }  
        protected override void OnValueChanged(EventArgs e)  
        {  
            base.OnValueChanged(e);  
            RecalcValue();  
        }  
        protected override void OnScroll(EventArgs e)  
        {  
            base.OnScroll(e);  
            RecalcValue();  
        }  
        [Browsable(true)]  
        public new decimal Maximum  
        {  
            get { return (decimal)(base.Maximum * factor); }  
            set { base.Maximum = (int)(value / factor); }  
        }  
        [Browsable(true)]  
        public new decimal Minimum  
        {  
            get { return (decimal)(base.Minimum * factor); }  
            set { base.Minimum = (int)(value / factor); }  
        }  
        private decimal factor = 0.1M;  
        [Browsable(true)]  
        public decimal Factor  
        {  
            get { return factor;}  
            set { factor = value;}  
        }  
        private decimal myValue;  
        [Browsable(true)]  
        public new decimal Value  
        {  
            get { return myValue; }  
            set { myValue = value; }  
        }  
        [Browsable(true)]  
        public new decimal TickFrequency  
        {  
            get { return (decimal)(base.TickFrequency * factor); }  
            set { base.TickFrequency = (int)(value / factor); }  
        }  
        [Browsable(true)]  
        public new decimal SmallChange  
        {  
            get { return (decimal)(base.SmallChange * factor); }  
            set { base.SmallChange = (int)(value / factor); }  
        }  
        [Browsable(true)]  
        public new decimal LargeChange  
        {  
            get { return (decimal)(base.LargeChange * factor); }  
            set { base.LargeChange = (int)(value / factor); }  
        }  
        /// <summary>  
        /// Required method for Designer support - do not modify  
        /// the contents of this method with the code editor.  
        /// </summary>  
    }
Nothing is happening when i try to set the value in the form...value is not changed...track bar is not moving.
dtb1.Value = 34; //nothing happens
Changing the value with the mouse is ok.......???????
Grant replied to Zoki Manas on 16-Nov-10 01:15 PM
issue is your Value property... you need to change it to code below. 
the base is never being set

private void RecalcValue()

{

//remove the myValue property...
 //myValue = (double)(base.Value * factor);

}



[Browsable(true)]

public new double Value

{

get { return (double)(base.Value * factor); }

set

{

base.Value = (int)(value / (double)factor); ;

}

}