/// <summary>
        /// Initializes a new instance of the <see cref="NuGenCalculatorDropDown"/> class.
        /// </summary>
        /// <param name="serviceProvider">
        ///		<para>Requires:</para>
        ///     <para><see cref="INuGenButtonStateService"/></para>
        ///     <para><see cref="INuGenControlStateService"/></para>
        ///		<para><see cref="INuGenDropDownRenderer"/></para>
        ///		<para><see cref="INuGenPanelRenderer"/></para>
        ///		<para><see cref="INuGenTextBoxRenderer"/></para>
        ///		<para><see cref="INuGenControlImageManager"/></para>
        /// </param>
        /// <exception cref="ArgumentNullException"><paramref name="serviceProvider"/> is <see langword="null"/>.</exception>
        public NuGenCalculatorDropDown(INuGenServiceProvider serviceProvider)
            : base(serviceProvider)
        {
            _calcPopup = new NuGenCalculatorPopup(serviceProvider);
            _calcPopup.ValueAccepted += _calcPopup_ValueAccepted;
            _calcPopup.ValueCanceled += _calcPopup_ValueCanceled;

            base.PopupBorderStyle = FormBorderStyle.None;
            base.PopupControl     = _calcPopup;
            base.PopupSize        = _calcPopup.Size;
        }
        /// <summary>
        /// </summary>
        /// <param name="disposing">
        /// <see langword="true"/> to release both managed and unmanaged resources; <see langword="false"/> to release only unmanaged resources.
        /// </param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_calcPopup != null)
                {
                    _calcPopup.ValueAccepted -= _calcPopup_ValueAccepted;
                    _calcPopup.ValueCanceled -= _calcPopup_ValueCanceled;
                    _calcPopup.Dispose();
                    _calcPopup = null;
                }
            }

            base.Dispose(disposing);
        }
		/// <summary>
		/// </summary>
		/// <param name="disposing">
		/// <see langword="true"/> to release both managed and unmanaged resources; <see langword="false"/> to release only unmanaged resources.
		/// </param>
		protected override void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (_calcPopup != null)
				{
					_calcPopup.ValueAccepted -= _calcPopup_ValueAccepted;
					_calcPopup.ValueCanceled -= _calcPopup_ValueCanceled;
					_calcPopup.Dispose();
					_calcPopup = null;					
				}
			}

			base.Dispose(disposing);
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="NuGenCalculatorDropDown"/> class.
		/// </summary>
		/// <param name="serviceProvider">
		///		<para>Requires:</para>
		/// 	<para><see cref="INuGenButtonStateService"/></para>
		/// 	<para><see cref="INuGenControlStateService"/></para>
		///		<para><see cref="INuGenDropDownRenderer"/></para>
		///		<para><see cref="INuGenPanelRenderer"/></para>
		///		<para><see cref="INuGenTextBoxRenderer"/></para>
		///		<para><see cref="INuGenControlImageManager"/></para>
		/// </param>
		/// <exception cref="ArgumentNullException"><paramref name="serviceProvider"/> is <see langword="null"/>.</exception>
		public NuGenCalculatorDropDown(INuGenServiceProvider serviceProvider)
			: base(serviceProvider)
		{
			_calcPopup = new NuGenCalculatorPopup(serviceProvider);
			_calcPopup.ValueAccepted += _calcPopup_ValueAccepted;
			_calcPopup.ValueCanceled += _calcPopup_ValueCanceled;

			base.PopupBorderStyle = FormBorderStyle.None;
			base.PopupControl = _calcPopup;
			base.PopupSize = _calcPopup.Size;
		}