Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Portal

Atribuir background em outro formulário

Recommended Posts

Olá gente,

 

Bom, o que estou tentando fazer é bem simples, porém não está funcionando. O

que eu preciso é alterar a imagem de fundo de outro formulário por meio de

outro formulário, aqui vai o código que estou utilizando:

 

private void btnAlterarImagem_Click(object sender, System.EventArgs e) { 	 frmMDIPrincipal frm = new frmMDIPrincipal(); 	 frm.BackgroundImage = Image.FromFile(strCaminhoImagem); }

A princípio eu achei que esse código funcionava, porém não acontece erro

nenhum, só não funciona, espero que possam me ajudar.

 

Obs.: "strCaminhoImagem" é a variável que armazena o caminho da imagem

escolhida pelo usuário.

 

Wai,

Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas no caso você esta criando um objeto novo com esta linha

frmMDIPrincipal frm = new frmMDIPrincipal(); , você tem que pegar o objeto já criado, veja neste post tem um exemplo de como pegar o objeto já criado http://forum.imasters.com.br/index.php?sho...53entry449553

 

falows

T+

:noel:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, de acordo com o post que tu me passou eu tentei assim:Aqui eu fiz uma declaração pública da variável:

public frmMDIPrincipal frm;
E no botãoem que faço a alteração eu estou usando este código:
frm.BackgroundImage = Image.FromFile(strCaminhoImagem);
Mas agora acontece o seguinte erro:

An unhandled exception of type 'System.NullReferenceException' occurred in prjCadVendas.exeAdditional information: Referência de objeto não definida para uma instância de um objeto.

Obrigado desde já e um grande abraço a todos.Obs.: Sou principiante, por isso estou tendo tanta dificuldade, espero que possam me ajudar.Wai,Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já esta com o frmMDIPrincipal aberto é isto?se for, qdo. você chamar este outro form ai, você tem que passar o objeto do mdi pra este outro, dai la no outro você atribui a imagem neste objeto do mdiexemplo:na chamada do mdi: (ta em vb.net, transforma em c# ae bl)Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickDim formOutro As New formOutroformOutro.mdi = MeformOutro.Show()End Subno formOutro você declara esta variavelPublic mdi As frmMDIPrincipal agora na sua rotina de troca de imagem você usa a variavel mdiprivate void btnAlterarImagem_Click(object sender, System.EventArgs e) { mdi.BackgroundImage = Image.FromFile(strCaminhoImagem); }soh naum sei se precisa dar um refresh ou algum outro comando... estou sem o visual studio aqui pra testarfalowst++ :natalbiggrin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... Ainda continua exatamente o mesmo erro, mas eu vou postar aqui a alteração que eu fiz no código de acordo com o que o amigo me auxiliou:

 

Este é o código de chamada do formulário de alteração:

private void mnuAlterarFundo_Click(object sender, System.EventArgs e){				frmAlteraFundoMDI frm = new frmAlteraFundoMDI();	frm.MdiParent = base.MdiParent;	frm.Show();}

Esta é a variável pública que está declarada no início da classe do formulário de alteração:

public frmMDIPrincipal frm;

Este é o código no botão que altera o fundo:

private void btnAlterarImagem_Click(object sender, System.EventArgs e)

{				frm.BackgroundImage = Image.FromFile(strCaminhoImagem);}

Obrigado desde já.

 

Wai,

Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q ta faltando isso aqui em negrito

private void mnuAlterarFundo_Click(object sender, System.EventArgs e)

{

frmAlteraFundoMDI frm = new frmAlteraFundoMDI();

frm.frm = me <-- 'Me' é em vb.net, em c# naum manjo muito mas acho q deve ser this, ou entaum passa o objeto se você tiver ele ae em um modulo ou classe

frm.MdiParent = base.MdiParent;

frm.Show();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.