Ir para conteúdo

POWERED BY:

Arquivado

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

rob.coutinho

Aplicação Windows em C#

Recommended Posts

Amigos(as) seguinte. Tenho um Windows Form principal em uma Aplicação, que chama um Form Secundário. Digamos que esse Form Secundário seria uma viso. A pessoa clica em tal botão no Form Principal, abre o Form Secundário, ela lê a mensagem, clica em ok e o Form Secundário se fecha.

 

Até aí, simples. O problema é, o meu Form Secundário, está fechando sozinho. Quando o evento que o abre é executado no Form Principal, ele abre, e fecha automaticamente quando ele deveria se fechar tão e somente quando fosse clicado no botão apropriado para isso.

 

A impressão que eu tenho é que o Framework está executando toda a aplicação como se fosse uma página Web ou seja, linha, a linha. Isso eu imagino não estar correto e como principiante que sou no meio das aplicações windows não estou conseguindo resolver esse problema.

 

Alguém pode me ajudar? O código da segunda janela segue abaixo. Sendo que o Close pra fechar o form só deveria ser executado no evento click do botão ok. Mas não, ele executa tudo que tem no código inclusive o MessageBox que fiz pra testar.

 

Aguardo alguma luz da parte de vcs.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Romaneio_Beta_1._1._0
{
   public partial class formMensagemDeErro : Form
   {
       public formMensagemDeErro()
       {
           InitializeComponent();
       }

       private void formMensagemDeErro_Load(object sender, EventArgs e)
       {
           txtErro.Text = FormMensagensDeErro.MensagemErro.ToString();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           FormMensagensDeErro.MensagemErro = "";
           MessageBox.Show("Teste");
           this.Close();
       }
   }
}

 

Lembrando que a linha this.Close(); está sendo executada como se tivesse no evendo Load. Mto estranho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código que abre o form secundário.

 

Abraços...

 

O Código é exatamente esse:

 

string destinoSelecionado = txtDestino.Text.ToString();
if (destinoSelecionado == "Selecione...")
{
   lbErro.Text = "Para cadastrar uma nota selecione antes o Destinatário!!!";
   lbErro.ForeColor = System.Drawing.Color.Yellow;

   FormMensagensDeErro.MensagemErro = "Para cadastrar uma nota selecione antes o Destinatário!!!";
   formMensagemDeErro objFormMensagemDeErro = new formMensagemDeErro();
   objFormMensagemDeErro.ShowDialog();
}

 

Onde txtDestino é um combobox que lista as opções direto do BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

button1_Click não está associado ao evento Load ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

button1_Click não está associado ao evento Load ?

 

Pior que não tem nada no evento Load. A única coisa é isso:

 

private void formMensagemDeErro_Load(object sender, EventArgs e)
{
    txtErro.Text = FormMensagensDeErro.MensagemErro.ToString();
}

 

Apenas é carregado um texto em uma label mais nada. Não sei porque o evento click do botão está sendo executado. E o mais estranho ainda é que mesmo eu comentando a linha //this.Close(); o formulário continua fechando ou seja, o form que fecha é o mesmo que chama. Dá pra entender? Aff

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não me entendeu.

 

Vá até o método InitializeComponent() e veja se tem algo assim:

 

 

this.Load += new System.EventHandler(this.button1_Click);

 

 

this.Load, é o evento OnLoad do Form.

this.button1_Click, é o método que deveria ser só executado pelo botão.

 

Dessa forma, o método "do botao" é executado no evento OnLoad.

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.