none
OpenFileDialog RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando fazer uma coisa aparentemente simples, estou querendo criar um programa onde o usuario pode escolher o arquivo de entrada.

    Criei um novo projeto. No form principal adicionei um menu e dentro deste menu coloquei um submenu que possui um evento no click. Então quando eu clico neste submenu abre um outro form que criei. Dentro deste form existe um botão. Eu quero é que quando clicar neste botão abra uma janela de OpenFileDialog. Eu coloquei o seguinte codigo no evento do click, retirado da documentação do Visual Studio 2008:

    private:
       void button1_Click(System:: Object ^ sender,
          System:: EventArgs ^ e)
       {
          if(openFileDialog1->ShowDialog( ) == DialogResult:: OK)
          {
             System::IO:: StreamReader ^ sr = gcnew
                System::IO:: StreamReader(openFileDialog1->FileName);
             MessageBox:: Show(sr->ReadToEnd( ));
             sr->Close( );
          }
       }


    Coloquei só código em negrito, no entanto não acontece nada quando eu clico no botão que possui este evento. Para testar, coloquei só:

    MessageBox:: Show("Teste");

    e também não aparece a mensagem.

    Onde estou errando?

    Grato.
    segunda-feira, 9 de junho de 2008 14:53

Todas as Respostas

  • O código é esse mesmo, funciona sem problemas:

     

    Code Snippet

    private void button1_Click(System.Object sender, System.EventArgs e)

    {

    if (openFileDialog1.ShowDialog() == DialogResult.OK)

    {

    System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog1.FileName);

    MessageBox.Show(sr.ReadToEnd());

    sr.Close();

    }

    }

     

     

     

    Provavelmente você tenha adicionado o Button e em seguida digitado o código diretamente. O Ideal seria você clicar 2x no Button para que o Visual Studio criar o código do Evento (Button1_Click).

     

    Para resolver seu problema, abra o arquivo do seu Formulários, Form1.Designer.Cs (Lembrando que Form1 em seu projeto estará com o nome que você definiu), após abrir esse arquivo procure por this.button1 ( estarar na #region Windows Form Designer generated code)  e adicione

     

    Code Snippet

     

    this.button1.Click += new System.EventHandler(this.button1_Click);

     

     

     

    Ficará algo assim:

     

    Code Snippet

    #region Windows Form Designer generated code

    /// <summary>

    /// Required method for Designer support - do not modify

    /// the contents of this method with the code editor.

    /// </summary>

    private void InitializeComponent()

    {

    this.button1 = new System.Windows.Forms.Button();

    this.SuspendLayout();

    //

    // button1

    //

    this.button1.Location = new System.Drawing.Point(199, 25);

    this.button1.Name = "button1";

    this.button1.Size = new System.Drawing.Size(75, 23);

    this.button1.TabIndex = 0;

    this.button1.Text = "button1";

    this.button1.UseVisualStyleBackColor = true;

    this.button1.Click += new System.EventHandler(this.button1_Click);

     

     

     

    quinta-feira, 10 de julho de 2008 19:09