Descarga Internet Explorer 9  
Entrar   |   Registro ]
Inicio   |   Eventos   |   Foros   |   Galerías   |   Recursos   |   Directorio   |   Planeta  


Discusión Técnica

Autor Tópico: forms en c#
asmodeo
forms en c#
Publicado: Wednesday, June 17, 2009 7:37 PM (PST)
tengo un problema quiero utilizar dos forms una principal que me servira como menu y otra que me servira para realizar diferentes operaciones matematicas, y cambiar el form dependiendo de la operacion.
alguien sabe como puedo hacerlo?
gracias..

Comentarios:

Autor Tópico:
gabriel
forms en c#
Publicado: Friday, June 19, 2009 8:25 AM (PST)
¿Te refieres a mandar llamar una segunda forma? Sería algo así como esto (aunque, por favor, nunca dejes el nombre de tus formas en los defaults Form1, Form2 etc.)
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.Show();
        }
Esto, desde la Form1. Aunque, no sé si también te refieres a que conforme estés en una u otra forma elegir cual quieres que esté activa. Así sería con
        Form2.TopMost = true;



asmodeo
forms en c#
Publicado: Sunday, June 21, 2009 12:58 PM (PST)
gracias gabriel pero esa no era mi duda. lo que en realidad necesito saber es como modificar la form2 desde la form1 para que haga diferentes operaciones sin tener que cear un monton de formas en el proyecto solo 2 digamos, 3 labels, 3 textbox,y 2 botones y cambiar los textos de los labes dependiendo que operacion quiera realizar. no se si se pueda pero si se puede podrian ayudarme? gracias

gabriel
forms en c#
Publicado: Monday, June 22, 2009 7:37 AM (PST)
Hay distintos modos de hacerlo, yo recomendaría que en la segunda forma tuvieras una función pública que manipule las propiedades de los controles para que no tengas que meterte mucho con la lógica de tus clases.

Imagina que esta es tu primer forma (con dos botones) nota por favor la Form2 como miembro de la clase de Form1:


    public partial class Form1 : Form
    {
        private Form2 frm = new Form2();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            frm.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            frm.setLabelText("Texto desde Form1");
        }
    }


Y ahora en tu segunda forma tienes un Label nada más, pero ahí implementas la función setLabelText:


    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public void setLabelText(string str)
        {
            this.label1.Text = str;
        }
    }


Y algo similar sería para el resto de tus controles que necesites manipular.

Agradecería alguna implementación mejor para este problema que alguien más pueda aportar.



Fernando
forms en c#
Publicado: Monday, June 22, 2009 1:12 PM (PST)
Algo así como dice Gabriel con métodos públicos que desde tu misma Form2 acomodes tus controles de forma acorde a la operación que quieres realizar, pero desde tu Form1 lo mandes llamar antes de ejecutar el metodo "Show()".

public partial class Form1 : Form
{
private Form2 frm = new Form2();

public Form1()
{
InitializeComponent();
}

private void btnFormato1_Click(object sender, EventArgs e)
{
frm.Formato1();
frm.Show();
}

private void btnFormato2_Click(object sender, EventArgs e)
{
frm.Formato2();
frm.Show();
}
}

Ya en tu Form2 tendrias algo como:

public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

public void Formato1(string str)
{
//hacer lo que tengas que hacer para acomodar la forma acorde al Formato1
}

public void Formato2(string str)
{
//hacer lo que tengas que hacer para acomodar la forma acorde al Formato2
}
}

Te funciona?

Hay alguna mejor solucion bajo los requerimientos que tiene?


Fernando
forms en c#
Publicado: Monday, June 22, 2009 1:20 PM (PST)
Error por hacer copy-paste, nunca hagan eso como yo lo hice :-P, en unos segundo mando una mejor opcion

Fernando
forms en c#
Publicado: Monday, June 22, 2009 1:48 PM (PST)
En el Form1 puedes tener algo como:



En el Form2 algo como:


Cada uno de tus botones (Form1) al mandar llamar tu Form2 va a tener en su propiedad Tag el valor de 'Formato1', 'Formato2', 'Formato3', etc, etc. Todos esos botones mandan llamar el mismo evento 'CambiarFormato_Click'.

No se si sea la mejor forma el usar la propiedad Tag, uds. que dicen?


  
Sea nuestro patrocinador
Nuevas fotos


Windows 7 Launch Mexicali - SIA


Windows 7 Launch Mexicali - Audiencia


Windows 7 Launch Mexicali - Registro


Derechos reservados TJ.NET