public static NumericUpDownPP AddSpinner(int currvalue, string min, string max, string increment, Font font, int top, int left, AnchorStyles anchors, Panel panel, int tabidx, int selidx)
        {
            // All 3 data items must be present and valid or we can't proceed
            if ((min == null) | (min == "") | (max == null) | (max == "") | (increment == null) | (increment == ""))
            {
                return(null);
            }

            if ((Tools.IsWholeNumber(min) == false) | (Tools.IsWholeNumber(max) == false) | (Tools.IsWholeNumber(increment) == false))
            {
                return(null);
            }

            NumericUpDownPP spinner = new NumericUpDownPP();

            spinner.Anchor        = anchors;
            spinner.Font          = font;
            spinner.TabIndex      = tabidx;
            spinner.BorderStyle   = BorderStyle.FixedSingle;
            spinner.Name          = "spinner" + tabidx.ToString();
            spinner.SelectedIndex = selidx;

            spinner.Width  = Tools.GetLabelWidth(max.ToString(), font) + 20;
            spinner.Height = spinner.PreferredHeight;
            spinner.Top    = top;
            spinner.Left   = left;

            spinner.Minimum   = Convert.ToDecimal(min);
            spinner.Maximum   = Convert.ToDecimal(max);
            spinner.Increment = Convert.ToDecimal(increment);

            if (currvalue >= spinner.Minimum & currvalue <= spinner.Maximum)
            {
                spinner.Value = currvalue;
            }
            else
            {
                spinner.Value = spinner.Minimum;
            }

            panel.Controls.Add(spinner);

            spinner.ValueChanged += new System.EventHandler(Preview_Event);

            return(spinner);
        }
        public static NumericUpDownPP AddSpinner(int currvalue, string min, string max, string increment, Font font, int top, int left, Panel panel, int selidx)
        {
            // All 3 data items must be present and valid or we can't proceed
            if ((min == null) | (min == "") | (max == null) | (max == "") | (increment == null) | (increment == ""))
            {
                return(null);
            }

            if ((Tools.IsWholeNumber(min) == false) | (Tools.IsWholeNumber(max) == false) | (Tools.IsWholeNumber(increment) == false))
            {
                return(null);
            }

            NumericUpDownPP spinner = new NumericUpDownPP();

            //spinner.Font = font;  // Not sure why, but this is crashing method
            spinner.ForeColor     = Color.Blue;
            spinner.SelectedIndex = selidx;

            spinner.Width = Tools.GetLabelWidth(max.ToString(), font) + 40;
            spinner.Top   = top;
            spinner.Left  = left;

            spinner.Minimum   = Convert.ToDecimal(min);
            spinner.Maximum   = Convert.ToDecimal(max);
            spinner.Increment = Convert.ToDecimal(increment);

            if (currvalue >= spinner.Minimum & currvalue <= spinner.Maximum)
            {
                spinner.Value = currvalue;
            }
            else
            {
                spinner.Value = spinner.Minimum;
            }

            panel.Controls.Add(spinner);

            spinner.ValueChanged += new System.EventHandler(PanelChoices_Event);

            // This second event handler is necessary for the situation where the
            // user types in a number and then hits 'Back' or 'Next'.
            spinner.LostFocus += new System.EventHandler(PanelChoices_Event);

            return(spinner);
        }