[ Foro de C# ]
Hola buenas estoy haciendo un formulario en el cual quiero que al presionar un Button se abra el formulario 2 (con una animación la cual hice con un timer) y desde el formulario 2 al presionar un Button que vuelva al form1 con la misma animación del timer... (Espero y me explique bien)
el codigo del form1 es este:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class tabIngresar : Form
{
public tabIngresar()
{
InitializeComponent();
}
tabRegistro frm2 = new tabRegistro();
private void textBox1_Click(object sender, EventArgs e)
{
textUser.Clear();
picUsuario.Image = Properties.Resources.User2;
panelUser.BackColor = Color.FromArgb(78, 184, 206);
textUser.ForeColor = Color.FromArgb(78, 184, 206);
picPass.Image = Properties.Resources.Pass1;
panelPass.BackColor = Color.WhiteSmoke;
textPass.ForeColor = Color.WhiteSmoke;
}
private void textBox2_Click(object sender, EventArgs e)
{
textPass.Clear();
textPass.PasswordChar = '•';
picPass.Image = Properties.Resources.Pass2;
panelPass.BackColor = Color.FromArgb(78, 184, 206);
textPass.ForeColor = Color.FromArgb(78, 184, 206);
picUsuario.Image = Properties.Resources.User1;
panelUser.BackColor = Color.WhiteSmoke;
textUser.ForeColor = Color.WhiteSmoke;
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Start();
}
//Animación
private void timer1_Tick(object sender, EventArgs e)
{
frm2.Left += 10;
if(frm2.Left >= 830)
{
timer1.Stop();
this.TopMost = false;
frm2.TopMost = true;
timer2.Start();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
frm2.Left -= 10;
if(frm2.Left <= 525)
{
timer2.Stop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
frm2.Show();
}
}
}
Y en el form2 aparece el error
El codigo del form 2 es este:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class tabRegistro : Form
{
public tabRegistro tabIngresar;
public tabRegistro()
{
InitializeComponent();
}
private void textUser_Click(object sender, EventArgs e)
{
textUser.Clear();
picUsuario.Image = Properties.Resources.User2;
panelUser.BackColor = Color.FromArgb(78, 184, 206);
textUser.ForeColor = Color.FromArgb(78, 184, 206);
picPass.Image = Properties.Resources.Pass1;
panelPass.BackColor = Color.WhiteSmoke;
textPass.ForeColor = Color.WhiteSmoke;
picEmail.Image = Properties.Resources.Email1;
panelEmail.BackColor = Color.WhiteSmoke;
textEmail.ForeColor = Color.WhiteSmoke;
}
private void textPass_Click(object sender, EventArgs e)
{
textPass.Clear();
textPass.PasswordChar = '•';
picPass.Image = Properties.Resources.Pass2;
panelPass.BackColor = Color.FromArgb(78, 184, 206);
textPass.ForeColor = Color.FromArgb(78, 184, 206);
picUsuario.Image = Properties.Resources.User1;
panelUser.BackColor = Color.WhiteSmoke;
textUser.ForeColor = Color.WhiteSmoke;
picEmail.Image = Properties.Resources.Email1;
panelEmail.BackColor = Color.WhiteSmoke;
textEmail.ForeColor = Color.WhiteSmoke;
}
private void textEmail_Click_1(object sender, EventArgs e)
{
textEmail.Clear();
picEmail.Image = Properties.Resources.Email2;
panelEmail.BackColor = Color.FromArgb(78, 184, 206);
textEmail.ForeColor = Color.FromArgb(78, 184, 206);
picPass.Image = Properties.Resources.Pass1;
panelPass.BackColor = Color.WhiteSmoke;
textPass.ForeColor = Color.WhiteSmoke;
picUsuario.Image = Properties.Resources.User1;
panelUser.BackColor = Color.WhiteSmoke;
textUser.ForeColor = Color.WhiteSmoke;
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
tabIngresar.Left += 10; //Aqui da el error
if (tabIngresar.Left >= 830)
{
timer1.Stop();
this.TopMost = false;
tabIngresar.TopMost = true;
timer2.Start();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
tabIngresar.Left -= 10;
if (tabIngresar.Left <= 525)
{
timer2.Stop();
}
}
}
}
Puedes crear un objeto de tipo Form2 desde dentro de Form1, mediante código (Form2 f = new Form2() ). Luego lo lanzas, y volverá a Form1 automáticamente cuando se cierre.
Hmm vale, lo intente hacer pero no compilaba ya que en el form1 ya hay una variable asi para el form2...
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)