elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  poner en pausa datos grilla c#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: poner en pausa datos grilla c#  (Leído 5,461 veces)
djnilo

Desconectado Desconectado

Mensajes: 13


Ver Perfil
poner en pausa datos grilla c#
« en: 27 Agosto 2022, 16:45 pm »

hola buenos dias programadores tengo una aplicacion hecha en visual studio 2015 sql 2016 es una aplicacion de restaurant  tengo un formulario de mesas y formulario de comandas
en el frmmesas tengo las mesas al presionar por ejemplo la mesa 5 aparece el formulario frmconanda esta formualrio se llena con botones una grilla la informacion pero al momento de cerrar desaparece la informacion de la grilla necesito mantenerla esa informacion  del formualrio
codigo

 BindingList<Comanda_Detalle> ListadoComanda = new BindingList<Comanda_Detalle>();

si lo dejo publico queda  la embarrada  que da en memoria en todas la instancia del formulario no sirve por que al abrir otra mesa se abre la información en todas la mesas error

public static BindingList<Comanda_Detalle> ListadoComanda = new BindingList<Comanda_Detalle>();

Código:
}
                                      BtnP[k] = new Button();
                                      BtnP[k].Name = "BtnS" + j.ToString();
                                      BtnP[k].Size = new Size(150, 80);
                                      BtnP[k].Text =ListaProductos[k].NombreProducto;
                                      BtnP[k].Tag =ListaProductos[k].IdProducto;
                                      BtnP[k].Location = locP;
                                      BtnP[k].BackColor = Color.Tomato;
                                      BtnP[k].TabStop = false;
                                      locP.X += 155;
                                      BtnP[k].Click += (object p, EventArgs ak) =>
                                        {
                                            dynamic Pt = (Button)p;
                                            //Agregar a la comanda
                                            var myproducto = objProducto.GetByID(Convert.ToInt32(Pt.Tag));
                                            if (myproducto != null)
                                            {
                                                if (myproducto.NombreSubFamilia != "OPCIONALES" && myproducto.NombreSubFamilia != "Opcionales")
                                                {
                                                    if ((myproducto.Stock <= 0) && (myproducto.CalcularStock == true))
                                                    {
                                                        MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        return;
                                                    }
                                                }
                                                //DgvDetalleComanda.Rows.Add(0, 0, myproducto.IdProducto, myproducto.NombreProducto, myproducto.Precio, 1, 0.19, "", 1, false);
                                                var deta = new Comanda_Detalle();
                                                deta.IdDetalle = 0;
                                                deta.IdComanda = 0;
                                                deta.IdProducto = myproducto.IdProducto;
                                                deta.NombreProducto = myproducto.NombreProducto;
                                                deta.Precio = myproducto.Precio;
                                                deta.Cantidad = 1;
                                                deta.PorcentajeIVA = eImpuesto.TasaImpuesto;
                                                if (myproducto.NombreSubFamilia == "OPCIONALES" || myproducto.NombreSubFamilia == "Opcionales")
                                                {
                                                    deta.Observaciones = myproducto.NombreSubFamilia.ToString();
                                                }
                                                else
                                                {
                                                    deta.Observaciones = "";
                                                }
                                                deta.IdSeccion =myproducto.IdSeccion;
                                                deta.Impreso = false;
                                                deta.IdPrioridad = 0;
                                                ListadoComanda.Add(deta);
                                                CalcularComanda();
                                                DgvDetalleComanda.DataSource = ListadoComanda;
                                               
                                      };
                                  }
                                  panelProductos.Controls.AddRange(BtnP);
tambien trate ocultar formulario y nada
Código:
private void button1_Click(object sender, EventArgs e)
        {
            FrmMesas form = new FrmMesas();

            this.Hide();


            form.ShowDialog();

            this.Show();
        }

se oculto pero aperecieron dos instancia del formulario Frmesas

esto es lo que tengo en el boton formulario mesas


En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: poner en pausa datos grilla c#
« Respuesta #1 en: 30 Agosto 2022, 21:05 pm »

No entendi ni verga de tu problema.

Parece que Por lo que entendi , en el frmmesas tienes (Objetos de mesas) al presionar la mesa 5 , abres un formulario frmconanda Este formulario lo llenas de nuevo, (con botones) , y en ese formulario tienes la informacion ( BindingList<Comanda_Detalle> por lo que tengo entendido).

Si es correcto lo que entendi. Entonces hay varias cosas que arreglar. sobre todo como tienes la estructura de tu codigo.

Primero que todo si quieres guardar la Lista BindingList<Comanda_Detalle>, de la mesa 5 (frmconanda). Almacenalo en otro lugar, como por ejemplo una clase diferente. ademas puedes mejorar en vez de usar una lista, usar un Diccionario, y al KeyPairValue , le pasas a la Key la ID de la mesa, y en Value , el objeto Comanda_Detalle.

Por cierto , si cierra el (frmconanda) que carga la lista, y luego lo cierras, Posiblemente no te acceso a el. por cierto, con tal estructura, la memoria deberia ser un desastre, tantos formularios abiertos, por cada mesa, y no veo que tengas una forma de liberar el objeto de la memoria, Dispose.



Código
  1. private void button1_Click(object sender, EventArgs e)
  2.        {
  3.            FrmMesas form = new FrmMesas();
  4.  
  5.            this.Hide();
  6.  
  7.  
  8.            form.ShowDialog();
  9.  
  10.            this.Show();
  11.        }
  12.  
  13. se oculto pero aperecieron dos instancia del formulario Frmesas
  14.  
  15. esto es lo que tengo en el boton formulario mesas

No se a que te refieres, pero estas creando un nuevo  Frmesas con cada click, por lo tanto deberias tener mas de una instancia, ya que cada click , es una nueva instancia de Frmesas





« Última modificación: 30 Agosto 2022, 21:06 pm por **Aincrad** » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con AP y antena grilla
Materiales y equipos
pepewarez 1 3,446 Último mensaje 4 Enero 2011, 21:19 pm
por elzar
Redireccionar sin perder datos de una grilla ?
.NET (C#, VB.NET, ASP)
Finishim 1 2,053 Último mensaje 2 Septiembre 2016, 14:02 pm
por Zeros1001
Fecha en Grilla
.NET (C#, VB.NET, ASP)
llogui 0 1,544 Último mensaje 6 Septiembre 2016, 15:00 pm
por llogui
guardar datos de una grilla
Programación General
crisoof 1 2,228 Último mensaje 17 Agosto 2019, 00:46 am
por crisoof
porque mi grilla me muestra dos registros y en mi bd solo tengo uno? WPF C#
.NET (C#, VB.NET, ASP)
Beginner Web 2 3,826 Último mensaje 29 Noviembre 2020, 18:56 pm
por FFernandez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines