Como abrir vários arquivos de imagem sem usar a classe OpenFileDialog no translation from VPE for Csharp Visual .NET ou no Visual translation from VPE for Csharp 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 822916
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo passo a passo descreve como abrir vários arquivos de imagem sem usar a classe OpenFileDialog . Este artigo também inclui uma listagem de código de exemplo que descreve os conceitos discutidos neste artigo.

Observação O código de exemplo listagem neste artigo não contém a verificação de erros. Modificar o código de acordo com seu aplicativo.

back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Windows 2000, Microsoft Windows XP ou Microsoft Windows Server 2003
  • Microsoft Visual translation from VPE for Csharp .NET ou Microsoft Visual 2005 translation from VPE for Csharp
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Programação com translation from VPE for Csharp Visual
  • A classe System.Drawing.Image
  • A classe System.IO.FileStream
back to the top

Crie um aplicativo do Windows

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em projetos translation from VPE for Csharp Visual . Em modelos , clique em Windows Application .

    Observação No Visual Studio 2005, em Project Types , clique em translation from VPE for Csharp Visual . Em modelos , clique em Windows Application .
  4. Na caixa nome , digite ImageDemo e, em seguida, clique em OK .

    Por padrão, Form1.vb é criado.
back to the top

Substitua o construtor de seu formulário existente

Por padrão, o construtor existente do Form1 não aceita os parâmetros. Para passar uma lista de imagens e suas descrições para o construtor do formulário Form1 , modificar o construtor padrão. Para modificar o construtor padrão, execute essas etapas:
  1. No menu Exibir , clique em código .
  2. No arquivo Class1.cs, localize o código a seguir na região de código do Windows Form Designer gerado:
    		public Form1()		{			//			// Required for Windows Form Designer support.			//			InitializeComponent();			//			// TODO: Add any constructor code after InitializeComponent call.			//		}
  3. Substitua o código localizado na etapa 2 com o seguinte código:
    		public Form1(string [] cmdArgs)		{			//			// Required for Windows Form Designer support.			//			InitializeComponent();              this.WindowState = FormWindowState.Maximized;          // Call the method that opens and then displays your images.            OpenAndDisplayImages(cmdArgs);		}
back to the top

Adicionar um novo módulo ao seu projeto

Para passar uma lista de imagens e suas descrições para o construtor do formulário Form1 , adicione um novo módulo para seu projeto e, em seguida, criar um novo objeto de Form1 no método Main do seu novo módulo. O principal método aceita argumentos de linha de comando. Para fazer isso, execute as seguintes etapas:
  • No arquivo Class1.cs, localize a função Main() e, em seguida, substitua o código existente com o código a seguir:
    		[STAThread]		static void Main(string[] cmdArgs) 		{            /// Create a Form1 object by passing the received command-line arguments             /// to the constructor of Form1, and then display the new Form1 object.            Application.Run(new Form1(cmdArgs));		}
back to the top

Adicionar código para abrir e e exibir imagens

Para abrir e, em seguida, exibir a lista de imagens que são passados para o construtor do objeto do Form1 , execute estas etapas:
  • Abra o arquivo de Class.cs e, em seguida, adicione o seguinte código após a função Main :
            /// <summary>        /// Declare a method to control the programming logic that you must have          /// to open and then to display all your images.        /// </summary>        /// <param name="cmdArgs">Used to store command line parameters.</param>        private void OpenAndDisplayImages(string [] cmdArgs)        {                        int count;            /// <value>Variable to iterate through your list of images.</value>            try            {                /// Temporarily suspend the layout logic for your Form1 object.                this.SuspendLayout();                ///Iterate through your list of images.                for (count = 0; count <= cmdArgs.Length - 1; count+=2)                {                    /// Call the method that opens and then displays the image that corresponds to                     /// the image file name that is indexed by the current value of count.                    OpenAndDisplay(cmdArgs[count],count);                }                this.ResumeLayout(false);            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());            }        }                /// <summary>        /// Declare a method to open and then to display the image that         /// imageFileName specifies.        /// </summary>        /// <param name="imageFileName">Used to store Image filename.</param>        /// <param name="count">Image offset factor.</param>        private void OpenAndDisplay(string imageFileName , int count)        {            /// Declare a variable to hold a reference to your image.            FileStream imageStream;            try            {                /// Open your image for Read access as a new FileStream.                imageStream = new FileStream(imageFileName,FileMode.Open,FileAccess.Read);                                /// Declare a variable to hold a reference to your PictureBox.                PictureBox myPictureBox = new PictureBox();                                /// Set the image for the PictureBox to reduce or to expand                 /// to fit the size of the PictureBox.                myPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;                                /// Set the location of the PictureBox based on the value of count.                /// Because the count is always incremented by 2, you have to multiply the value of                /// count by 64 so that image of size 128x128 can be propery displayed.                myPictureBox.Location = new System.Drawing.Point(count*64,0);                                /// Set the size of the PictureBox.                myPictureBox.Size = new System.Drawing.Size(128,128);                                /// Set the BorderStyle of the PictureBox.                myPictureBox.BorderStyle = BorderStyle.Fixed3D;                                /// Set the image of the PictureBox from the opened FileStream.                myPictureBox.Image = System.Drawing.Image.FromStream(imageStream);                                /// Add the PictureBox to your Form1 object.                this.Controls.Add(myPictureBox);            }            catch(FileNotFoundException ex)            {                MessageBox.Show(ex.ToString ());            }        }
back to the top

Concluir a listagem de código

Class1.CS

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.IO;namespace ImageDemo{    /// <summary>    /// Summary description for Form1.    /// </summary>    public class Form1 : System.Windows.Forms.Form    {        /// <summary>        /// Required designer variable.        /// </summary>        private System.ComponentModel.Container components = null;        public Form1(string [] cmdArgs)        {            ///            /// Required for Windows Form Designer support.            ///            InitializeComponent();              this.WindowState = FormWindowState.Maximized;            /// Call the method that opens and then displays your images.            OpenAndDisplayImages(cmdArgs);        }        /// <summary>        /// Clean up any resources that are being used.        /// </summary>        protected override void Dispose( bool disposing )        {            if( disposing )            {                if (components != null)                 {                    components.Dispose();                }            }            base.Dispose( disposing );        }        #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.components = new System.ComponentModel.Container();            this.Size = new System.Drawing.Size(300,300);            this.Text = "Form1";        }        #endregion        /// <summary>        /// The main entry point for the application.        /// </summary>        [STAThread]        static void Main(string[] cmdArgs)         {            /// Create a Form1 object by passing the received command-line arguments             /// to the constructor of Form1 and then display the new Form1 object.            Application.Run(new Form1(cmdArgs));        }        /// <summary>        /// Declare a method to control the programming logic that you must have          /// to open and then to display all your images.        /// </summary>        /// <param name="cmdArgs">Used to store command line parameters.</param>        private void OpenAndDisplayImages(string [] cmdArgs)        {                        int count;            /// <value>Variable to iterate through your list of images.</value>            try            {                /// Temporarily suspend the layout logic for your Form1 object.                this.SuspendLayout();                ///Iterate through your list of images.                for (count = 0; count <= cmdArgs.Length - 1; count+=2)                {                    /// Call the method that opens and then displays the image that corresponds to                     /// the image file name that is indexed by the current value of count.                    OpenAndDisplay(cmdArgs[count],count);                }                this.ResumeLayout(false);            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());            }        }                /// <summary>        /// Declare a method to open and then to display the image that         /// imageFileName specifies.        /// </summary>        /// <param name="imageFileName">Used to store Image filename.</param>        /// <param name="count">Image offset factor.</param>        private void OpenAndDisplay(string imageFileName , int count)        {            /// Declare a variable to hold a reference to your image.            FileStream imageStream;            try            {                /// Open your image for Read access as a new FileStream.                imageStream = new FileStream(imageFileName,FileMode.Open,FileAccess.Read);                                /// Declare a variable to hold a reference to your PictureBox.                PictureBox myPictureBox = new PictureBox();                                /// Set the image for the PictureBox to reduce or to expand                 /// to fit the size of the PictureBox.                myPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;                                /// Set the location of the PictureBox based on the value of count.                /// Because the count is always incremented by 2, you have to mutiply the value of                /// count by 64 so that image of size 128x128 can be propery displayed.                myPictureBox.Location = new System.Drawing.Point(count*64,0);                                /// Set the size of the PictureBox.                myPictureBox.Size = new System.Drawing.Size(128,128);                                /// Set the BorderStyle of the PictureBox.                myPictureBox.BorderStyle = BorderStyle.Fixed3D;                                /// Set the image of the PictureBox from the opened FileStream.                myPictureBox.Image = System.Drawing.Image.FromStream(imageStream);                                /// Add the PictureBox to your Form1 object.                this.Controls.Add(myPictureBox);            }            catch(FileNotFoundException ex)            {                MessageBox.Show(ex.ToString ());            }        }    }}
Observação O código deve ser alterado no Visual Studio 2005. Quando você cria um projeto Windows Forms, translation from VPE for Csharp Visual adiciona um formulário para o projeto por padrão. Este formulário é denominado Form1. Os dois arquivos que representam o formulário são denominados Form1.cs e Form1.Designer.cs. Tem de escrever seu código no Form1.cs. O ficheiro designer.cs é onde o Windows Forms Designer escreve o código que implementa todas as ações que você executou arrastando e soltando controles da caixa de ferramentas. Para obter mais informações sobre o Windows Forms Designer no Visual translation from VPE for Csharp 2005, visite o seguinte site: back to the top

Verificar se o código funciona

  1. No menu Build , clique em Build Solution .
  2. Em um prompt de comando, altere o caminho diretório do local do arquivo ImageDemo.exe que você criou na etapa 1.
  3. No prompt de comando, digite o seguinte comando (que inclui espaços reservados de caminho e a descrição) e, em seguida, clique em OK para executar o programa ImageDemo:
    ImageDemo Path_of_ImageFile1Description_of_ImageFile1Path_of_ImageFile2Description_of_ImageFile2
    onde Path of ImageFile1 e Path of ImageFile2 são os caminhos de arquivo dos arquivos de imagem em seu computador.

    Observação Você pode usar nomes de arquivo em vez de caminhos de arquivo se os arquivos de imagem correspondentes estão localizados no mesmo diretório como o caminho de diretório que você criou anteriormente.
  4. Por padrão, o Form1 é exibida. Você pode observar que os arquivos de imagem são exibidos no formulário Form1 .

    Observação Você pode abrir e exibir até oito arquivos de imagem usando a listagem de código de exemplo fornecida neste artigo.
back to the top

Solução de problemas

  • Poderá receber a seguinte mensagem de erro quando você executa o aplicativo ImageDemo :
    System.IO.FileNotFoundException
    Você recebe essa mensagem de erro porque um dos caminhos de arquivo fornecido na etapa 3 da seção "Verificar que o código funciona" deste artigo está incorreto. Os caminhos de arquivo podem estar incorretos se você não usar aspas para argumentos de linha de comando que contenham espaços.
  • Alguns dos seus arquivos de imagem não são exibidos no Form1 formulário.

    Isso ocorre quando você fornece mais de oito nomes de arquivo de imagem como argumentos de linha de comando. Somente os arquivos de oito imagem primeiro são exibidos no formulário Form1 . Você pode modificar o método OpenAndDisplayImages e o método OpenAndDisplay para exibir mais de oito imagens no Form1 .
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 822916 - Última Revisão: 12/08/2015 03:11:13 - Revisão: 3.6

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbcode kbprogramming kbcmndlg kbfileio kbbitmap kbhowtomaster KB822916 KbMtpt
Comentários