• Domingo 22 de Diciembre de 2024, 23:32

Autor Tema:  Formulario Base  (Leído 1535 veces)

javier.gorza

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Formulario Base
« en: Jueves 10 de Junio de 2010, 15:07 »
0
Buenos Dias.
Soy nuevo en esto de programar con C# y POO.
Estoy utilizando VS 2008, y me pasa lo siguiente.
He creado un FormBase en donde tengo algo de codigo como validaciones, y a medida que voy creando nuevos formularios voy por Agregar Windows Form, y de ahi Formulario Heredaro, luego selecciono el FormBase.
Hasta ahora, he creado 5 formularios más sin contar el FormBase y funcionaban bien.
Pero ahora mi inconveniente, cambio la propiedad FormBorderStyle del FormBase a FixeDialog, pero en los 5 formularios que son heredado del FormBase, sigue igual, con el mismo comportamiento.
QUe estoy haciendo mal?
Desde ya muchas gracias...

Newtek

  • Miembro activo
  • **
  • Mensajes: 81
  • Nacionalidad: cr
    • Ver Perfil
    • http://www.newtekwebhosting.com.com?id=000231
Re: Formulario Base
« Respuesta #1 en: Jueves 10 de Junio de 2010, 16:15 »
0
Como estas implementando le formulario base en los otros formularios? Estas utilizando Master pages?

Si puedes darnos un poco mas de detalles de tu implementacion de fijo y te ayudamos.

Saludos.

Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech

javier.gorza

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Formulario Base
« Respuesta #2 en: Jueves 10 de Junio de 2010, 16:56 »
0
La aplicacion es una aplicacion Windows.
Yo primero cree el formulario Base, FormBase. tiene este codigo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Cyber.UI
{
    public partial class frmBase : Form
    {
        #region Enum

        public enum EstateForm
        {
            Create,
            Update,
            View
        }

        #endregion

        #region Attributes

        protected EstateForm _stateForm = EstateForm.Create;

        #endregion

        #region Properties

        public EstateForm StateForm
        {
            get
            {
                return _stateForm;
            }
            set
            {
                _stateForm = value;
            }
        }

        #endregion
       
        #region Protected Methods

        protected virtual void ClearForm()
        {

        }
        protected virtual bool IsValidForm()
        {
            return true;
        }

        #endregion

        #region Public Methods

        public void IsDigit(ref KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) || e.KeyChar == 'b')
                e.Handled = false;
            else
                e.Handled = true;
        }

        public void IsDecimal(ref KeyPressEventArgs e)
        {
           
            if (char.IsDigit(e.KeyChar) || char.IsPunctuation(e.KeyChar) || e.KeyChar == 'b')
                e.Handled = false;
            else
                e.Handled = true;
        }
        public static void SetFocus(ref KeyPressEventArgs e, Control oControl)
        {
            if (e.KeyChar == 'r')
                oControl.Focus();
        }
        public static void EnabledControl(Control oControl, bool state)
        {
            oControl.Enabled = state;
        }

        #endregion

        #region events

        private void frmBase_Load(object sender, EventArgs e)
        {

        }

        #endregion
    }
}

Y uno de los formularios que heredan de este fomulario tiene este codigo.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Cyber.BusinessRule;
using Cyber.BusinessEntities;

namespace Cyber.UI
{
    public partial class frmMarcas : Cyber.UI.frmBase
    {
        #region Private Methods

        private void CargarGrillaMarcas()
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();

            try
            {
                List<Marca> lMarcas = oMarcaBR.BuscarMarcas();
                dgvMarcas.DataSource = lMarcas;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }

        private void CargaPantalla()
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();

            try
            {
                //verifico que haya una marca seleccionada
                if (dgvMarcas.CurrentRow != null)
                {
                    //busco los datos de la marca
                    Marca oMarca = oMarcaBR.BuscarMarca(Convert.ToInt32(dgvMarcas.CurrentRow.Cells[IdMarca.Name].Value));

                    //Pregunto si la Marca fue encontrada
                    if (oMarca == null)
                        MessageBox.Show("No se encontro datos de la Marca seleccionada", "Busqueda", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    else
                    {
                        txtDescripcion.Text = oMarca.Descripcion;
                    }
                }
            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error en la búsqueda de la marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.ClearForm();
            }
           
        }
        #endregion

        #region Protected Methods

        protected override void ClearForm()
        {
            txtDescripcion.Clear();
            txtDescripcion.Focus();
        }

        protected override bool IsValidForm()
        {
            epValidator.Clear();

            if (txtDescripcion.Text == string.Empty)
            {
                epValidator.SetError(txtDescripcion, "");
                MessageBox.Show("Debe Ingresar la descripcion", "Descripción", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtDescripcion.Focus();
                return false;
            }
            return true;
        }

        #endregion

        #region Events

        public frmMarcas()
        {
            InitializeComponent();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            //Limpia la Pantalla
            this.ClearForm();
        }

        private void bttCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmMarcas_Load(object sender, EventArgs e)
        {
            try
            {
                //Limpio la pantalla
                this.ClearForm();

                //Cargo la Grilla
                this.CargarGrillaMarcas();

                ////Cargo la Lista
                //this.CargarLista();

            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error en la carga de la grilla. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();
            int resultado = 0;
            try
            {
                //Verifico que los datos del formulario sean validos
                if (this.IsValidForm())
                {
                    //juzgo el estado del formulario
                    switch (this.StateForm)
                    {
                        case EstateForm.Create:
                            try
                            {
                                //registramos la Marca
                                resultado = oMarcaBR.RegistrarMarca(txtDescripcion.Text.Trim());

                                if (resultado == 0)
                                {
                                    MessageBox.Show("Los datos de la Marca no han sido guardados.", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                }
                                else
                                {
                                    MessageBox.Show("Los datos de la Marca Nro. " + resultado.ToString() + " fueron registrado con éxito.", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    this.ClearForm();
                                    this.CargarGrillaMarcas();
                                }
                            }
                            catch (Exception ex)
                            {
                                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                                MessageBox.Show("Error durante la registración de los datos de la Marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            break;
                        case EstateForm.Update:

                            //actualizo los datos de la Marca
                            if (oMarcaBR.ActualizarMarca(Convert.ToInt32(dgvMarcas.CurrentRow.Cells[IdMarca.Name].Value),txtDescripcion.Text.Trim()) == 0)
                                MessageBox.Show("Los datos de la Marca no fueron actualizados", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            else
                            {
                                MessageBox.Show("Los datos de la Marca fueron actualizados con éxito", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.CargarGrillaMarcas();
                            }
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error al guardar los datos de la Marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void dgvMarcas_Click(object sender, EventArgs e)
        {
            //Cambio de Estado el Formulario
            this.StateForm = EstateForm.Update;

            //Busco los datos de la marca seleccionada y cargo sus datos en el fomulario
            this.CargaPantalla();
        }
    #endregion
    }
}

No se que más puedo poner...

javier.gorza

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Formulario Base
« Respuesta #3 en: Viernes 11 de Junio de 2010, 18:44 »
0
Por si alguien se topa con el mismo problema, acá les paso como lo solucione.

En primer lugar tuve que borrar las referencias en esa propiedad en los archivos designs.cs.
Luego, en el formBase, coloque lo siguiente...

        public frmBase()
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
            this.ShowInTaskbar = false;
            this.StartPosition = FormStartPosition.CenterScreen;
        }

Y listo, eso es todo.
Desde ya muchas gracias a los que respondieron.