Jump to content
rprb

Passar valores entre form c#

Recommended Posts

rprb

Boa noite pessoal!

tenho duas form no meu projecto e na form2 tenho uma picurebox na qual tem uma imagem sorteada num array, mas ate aqui tudo bem. Esta form (form2) esta sempre aberta a correr ao lado da form1 (.show()). O que nao estou a conseguir fazer é carregando num botão na form1 actualizar a form2. Alguém tem alguma ideia?

A ideia disto é carregar num botao na form1 e mudar de imagem na picturebox (form2).

Share this post


Link to post
Share on other sites
Rechousa

Olá,

Isto funcionou:

Na tua Form2, crias um método público em que passas o caminho da imagem:

public void ChangePicture(string location)
{
pictureBox1.ImageLocation = location;
}

Na tua Form1, instancias a Form2 numa propriedade da class (por via das dúvidas, usei 2 botões na Form1: 1 para fazer o show da Form2 e outro para mudar a imagem):

public partial class Form1 : Form
{
private Form2 frm;

public Form1()
{
	InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
        // Inicializas o objecto
	frm = new Form2();
                // Fazes o Show da Form2
	frm.Show();
}

private void button2_Click(object sender, EventArgs e)
{
                // Chamas o método público da Form2 para alterar a imagem
	frm.ChangePicture(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg");
}
}


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
rprb

private void button2_Click(object sender, EventArgs e)
        {
                // Chamas o método público da Form2 para alterar a imagem
                frm.ChangePicture(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg");
        }

frm nao está declarado :/

e ja agora eu nao uso directorias mas sim resource :/

Share this post


Link to post
Share on other sites
Rechousa

frm nao está declarado :/

Está sim:

public partial class Form1 : Form
{
// Olha ele aqui !!!
        private Form2 frm;
        (...)
}

e ja agora eu nao uso directorias mas sim resource :/

Não há problema, tens de adaptar o código:

Na Form2:

public void ChangePicture(Bitmap imagem)
{
    pictureBox1.Image = imagem;
}

Na Form1 (acrescentei o botão 3 para mostrar dois exemplos de imagem - previamente carregados...):

private void button2_Click(object sender, EventArgs e)
{
frm.ChangePicture(Properties.Resources.Penguins);
}

private void button3_Click(object sender, EventArgs e)
{
frm.ChangePicture(Properties.Resources.Tulips);
}


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
rprb

public partial class Form1 : Form
{
        // Olha ele aqui !!!
        private Form2 frm;
        (...)
}

Txii nunca mais reparei nessa declaração!

E obrigada já esta a funcionar ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.