/// <summary>
        /// Removes a step from the wizard
        /// </summary>
        /// <param name="name">The name of the step to remove</param>
        /// <returns>The step removed, returns null if no step by that name was in the list of steps</returns>
        public BaseStep RemoveStep(string name)
        {
            BaseStep step = Steps[name];

            if (step != null)
            {
                Steps.Remove(name);
            }

            return(step);
        }
        public void SetCurrentStep(string name, StepDirection dir)
        {
            if (name == null || name == "")
            {
                throw new ArgumentException("Step is null or empty", "step");
            }

            BaseStep bws = steps[name];

            if (bws == null)
            {
                throw new ArgumentException("Step does not contain the name of a step in the wizard", "name");
            }

            SetCurrentStep(bws, dir);
        }
        protected void SetCurrentStep(BaseStep step, StepDirection dir)
        {
            SuspendLayout();

            try
            {
                if (currentStep != null)
                {
                    DetatchStep();
                }

                currentStep = step;

                AttachStep(dir);
            }
            finally
            {
                ResumeLayout(true);
            }
        }
		protected void SetCurrentStep(BaseStep step, StepDirection dir)
		{
			SuspendLayout();

			try
			{
				if( currentStep != null )
				{
					DetatchStep();
				}

				currentStep = step;
			
				AttachStep(dir);
			}
			finally
			{
				ResumeLayout(true);
			}
		}
		/// <summary>
		/// Adds a step to the wizard
		/// </summary>
		/// <param name="name">The name of the step, this will be used as the name to look for in the PreviousStep and NextStep properties of the step</param>
		/// <param name="step">The step object to add</param>
		public void AddStep(string name, BaseStep step)
		{
			Steps[name] = step;
		}
 /// <summary>
 /// Adds a step to the wizard
 /// </summary>
 /// <param name="name">The name of the step, this will be used as the name to look for in the PreviousStep and NextStep properties of the step</param>
 /// <param name="step">The step object to add</param>
 public void AddStep(string name, BaseStep step)
 {
     Steps[name] = step;
 }
 public void Add(string key, BaseStep value)
 {
     innerHash.Add(key, value);
 }
 public bool ContainsValue(BaseStep value)
 {
     return(innerHash.ContainsValue(value));
 }
		public void Add(string key, BaseStep value)
		{
			innerHash.Add (key, value);
		}
		public bool ContainsValue (BaseStep value)
		{
			return innerHash.ContainsValue(value);
		}