5
					
						
						« en: Jueves 10 de Junio de 2010, 16:56 »
					 
					
					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...