Herencia de Formularios en C# y Lista de Supermercado con Windows Forms

Clasificado en Informática

Escrito el en español con un tamaño de 5,46 KB

Herencia de Formularios

En los menús, colocar el siguiente código para abrir los demás formularios hijos:
    frmExemplo2 exemplo2 = new frmExemplo2();
    exemplo2.MdiParent = this;
    exemplo2.Show();
Después de eso, para crear un formulario modelo y que este sea heredado por los demás formularios:

En el archivo .Designer.cs

Incluir : (dos puntos) y el nombre del formulario modelo delante de 'partial class'.

En el Form hijo

Incluir : (dos puntos) y el nombre del formulario modelo delante de 'partial class'.



Clase

using System.Collections.Generic;
using System.Windows.Forms;
namespace LP3
{
    class Supermercado
    {
        //Creando Collection
        public List<string> lista = new List<string>();
        //Creando método CriarLista
        public void CriarLista(string produto)
        {
            produto = produto.ToUpper();
            if (lista.Contains(produto))
                MessageBox.Show("Ya existe este producto en la lista");
            else
                this.lista.Add(produto);
        }
        public void VisualizarLista(Form frmok)
        {
            //Método que recibe el nombre de un formulario como parámetro
            ListBox lstListaCompra = new ListBox();
            RemoveLista(frmok);
            lstListaCompra.Size = new System.Drawing.Size(200, 100);
            lstListaCompra.Location = new System.Drawing.Point(35, 106);
            frmok.Controls.Add(lstListaCompra);
            lstListaCompra.MultiColumn = true;
            lstListaCompra.SelectionMode = SelectionMode.MultiExtended;
            //****************************************************
            lstListaCompra.Text = "Comprar";
            //****************************************************
            lstListaCompra.BeginUpdate();
            //recorre la colección lista
            foreach (string x in lista)
            {
                 lstListaCompra.Items.Add(x);
            }
            lstListaCompra.EndUpdate();
        }
        public void MontaCarrinho(ListBox carrinho, string mercadoria)
        {
            DialogResult resp;
            mercadoria = mercadoria.ToUpper();
            if (lista.Contains(mercadoria) == false)
            {
                resp = MessageBox.Show("Esta mercancía no está en su lista de compras. \n ¿Desea agregarla de todas formas?", "super1", MessageBoxButtons.YesNo);
                if (resp == DialogResult.Yes)
                   carrinho.Items.Add(mercadoria);
            }
            else
                carrinho.Items.Add(mercadoria);
        }
        public void RemoveLista(Form formu)
        {
            foreach (Control c in formu.Controls)
            {
                if (c.Text == "Comprar")
                {
                   formu.Controls.Remove(c);
                }
            }

Form

//Instanciando la clase
Supermercado super1 = new Supermercado();
private void btnCriarLista_Click(object sender, EventArgs e)
    {
        super1.VisualizarLista(this);
        string produto;
        DialogResult resp;
        resp = DialogResult.Yes;
        do
        {
            produto = Interaction.InputBox("Digite un producto");
            super1.CriarLista(produto);
            resp = MessageBox.Show("¿Desea agregar un ítem más?", "Supermercado Tabajar", MessageBoxButtons.YesNo);
        }while(resp == DialogResult.Yes);
        }
    private void btnCarrinho_Click(object sender, EventArgs e)
    {
        if (txtCarrinho.Text == "")
            MessageBox.Show("Digite la mercancía");
        else
            super1.MontaCarrinho(lstCarrinho, txtCarrinho.Text);
    }

Entradas relacionadas: