/// <summary>
        /// Cria o objeto do tipo IForm
        /// </summary>
        /// <typeparam name="T">Tipo do evento</typeparam>
        /// <param name="form">Tipo do Form</param>
        /// <param name="evento">Objeto do evento</param>
        /// <returns>Objeto IForm</returns>
        public static Interfaces.IForm CreateForm <T>(Type form, ref T evento)
        {
            ConstructorInfo constructor = form.GetConstructor(new Type[] { typeof(T) });

            Interfaces.IForm newForm = null;

            try
            {
                newForm = (Interfaces.IForm)constructor.Invoke(new object[] { evento });
            }
            catch (NullReferenceException) { }
            catch (Exception ex) { throw ex; }

            return(newForm);
        }
        /// <summary>
        /// Executa evento
        /// </summary>
        /// <typeparam name="T">Tipo do evento</typeparam>
        /// <param name="formID">ID do form</param>
        /// <param name="eventInfo">Objeto do evento</param>
        /// <param name="eventName">Nome do evento a ser executado</param>
        /// <param name="finishTransactionYN">Finaliza transação em caso de erro</param>
        /// <returns>Evento foi executado?</returns>
        public static Boolean ExecuteEvent <T>(String formID, T eventInfo, String eventName, Boolean finishTransactionYN)
        {
            Interfaces.IForm oForm = null;

            try
            {
                Type tType = FormController.GetFormType(formID);
                // Verifica se a variável tType contém algum valor, caso não, o método é interrompido
                if (tType == null)
                {
                    return(true);
                }

                // Instancia o objeto referente ao menu que foi selecionado
                oForm = FormController.CreateForm <T>(tType, ref eventInfo);
                // Verifica se a variável oForm contém algum valor, caso não, o método é interrompido
                //if (oForm == null) return false;
                if (oForm == null)
                {
                    return(true);
                }

                return((Boolean)oForm.GetType().GetMethod(eventName).Invoke(oForm, null));
            }
            catch (Exception ex)
            {
                ErrorController.SetErrorMessage(ex, finishTransactionYN);

                //if (oForm != null)
                //{
                //    oForm.Freeze(false);
                //}

                return(false);
            }
        }