ID do artigo: 820631 - Última revisão: segunda-feira, 26 de novembro de 2007 - Revisão: 2.6

Você receberá um "há muitos arquivos selecionados" mensagem de erro quando você usa o controle OpenFileDialog

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Você pode ter um formulário do Windows com um controle OpenFileDialog e a propriedade múltipla do controle é definida como True. Quando você executar o aplicativo e tentar abrir mais de 200 arquivos, você receberá a seguinte mensagem de erro:

Ocorreu uma exceção sem tratamento do tipo 'System.InvalidOperationException' em system.windows.forms.dll
Obter informações adicionais: há muitos arquivos selecionados. Selecione menos arquivos e tente novamente.

Causa

Esse problema ocorre porque o aplicativo usa a caixa de diálogo comum Abrir arquivo com o sinalizador OFN_ALLOWMULTISELECT definido. O buffer é passado para a caixa de diálogo comum Abrir arquivo in a OPENFILENAME.lpstrFile campo é muito pequeno. Portanto, a função GetOpenFileName retorna um valor de erro e você receber a mensagem de erro ao tentar abrir mais de 200 arquivos.

Situação

Esse comportamento é por design.

Mais Informações

Etapas para reproduzir o problema

  1. No Microsoft Visual Studio .NET ou no Microsoft Visual Studio 2005, criar um novo Microsoft Windows aplicativo. Você pode usar o Microsoft Visual Basic .NET, o Microsoft Visual Basic 2005 ou Microsoft Visual translation from VPE for Csharp .NET.

    Por padrão, é criado o Form1 .
  2. Em Toolbox , arraste um controle Button para Form1 .
  3. Em Toolbox , arraste um controle OpenFileDialog para Form1 .
  4. Clique com o botão direito do mouse OpenFileDialog1 e, em seguida, clique em Propriedades .
  5. Na janela Properties , defina a propriedade múltipla para True .
  6. Adicione o seguinte código ao evento Click do Button1 :

    Visual Basic .NET ou Visual Basic 2005
    'Displays the Open dialog box.
    OpenFileDialog1.ShowDialog()
    Visual translation from VPE for Csharp .NET Code
     //Displays the Open dialog box.
    openFileDialog1.ShowDialog();
  7. No menu Build , clique em BuildSolution .
  8. No menu Debug , clique em Iniciar .
  9. Clique em Button1 .
  10. Na caixa de diálogo Abrir , mova para uma pasta com mais de 200 arquivos. Selecionar mais de 200 arquivos e, em seguida, clique em Abrir .
  11. Você receberá a mensagem de erro na seção "Sintomas".

Referências

Para obter mais informações sobre a classe OpenFileDialog , visite o seguinte site:

http://msdn2.microsoft.com/en-us/library/system.windows.forms.openfiledialog(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.windows.forms.openfiledialog(vs.71).aspx) Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
131462  (http://support.microsoft.com/kb/131462/EN-US/ ) COMO: Identificador FNERR_BUFFERTOOSMALL no Windows

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbdlg kbproperties kbctrl kbcontrol kbforms kbwindowsforms kbprb KB820631 KbMtpt
Tradução automáticaTradução automática
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: 820631  (http://support.microsoft.com/kb/820631/en-us/ )