Artigo: 820631 - Última revisão: segunda-feira, 26 de Novembro de 2007 - Revisão: 2.6

Recebe uma "demasiados muitos ficheiros seleccionados" mensagem de erro quando utiliza o controlo 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 | Reduzir tudo

Sintomas

Poderá ter um formulário do Windows com um controlo OpenFileDialog e a propriedade multiselect do controlo estiver definida como TRUE. Quando executar a aplicação e tentar abrir mais de 200 ficheiros, poderá receber a seguinte mensagem de erro:

Ocorreu uma excepção não processada do tipo 'System.InvalidOperationException' no system.windows.forms.dll
Obter informações adicionais: demasiados ficheiros seleccionados. Seleccione menos ficheiros e tente novamente.

Causa

Este problema ocorre porque a aplicação utiliza a caixa de diálogo comuns Abrir um ficheiro com o sinalizador definido OFN_ALLOWMULTISELECT. A memória intermédia que é transmitida à caixa de diálogo comuns Abrir um ficheiro de in a OPENFILENAME.lpstrFile campo é demasiado pequeno. Por conseguinte, a função GetOpenFileName devolve um valor de erro e receberá a mensagem de erro quando tenta abrir ficheiros mais de 200.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o problema

  1. No Microsoft Visual Studio .NET ou no Microsoft Visual Studio 2005, crie um novo Microsoft Windows aplicação. Pode utilizar o Microsoft Visual Basic. NET, Microsoft Visual Basic 2005 ou Microsoft Visual C# .NET.

    Por predefinição, é criado o Form1 .
  2. A partir da caixa de ferramentas , arraste um controlo de botão ao Form1 .
  3. A partir da caixa de ferramentas , arraste um controlo OpenFileDialog ao Form1 .
  4. Clique com o botão direito do rato OpenFileDialog1 e, em seguida, clique em Propriedades .
  5. Na janela Propriedades , defina a propriedade multiselect como true .
  6. Adicione o seguinte código ao evento clicar de Button1 :

    Visual Basic .NET ou Visual Basic 2005 código
    'Displays the Open dialog box.
    OpenFileDialog1.ShowDialog()
    Código Visual C# .NET
     //Displays the Open dialog box.
    openFileDialog1.ShowDialog();
  7. No menu criar , 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 ficheiros. Seleccione ficheiros mais de 200 e, em seguida, clique em Abrir .
  11. Receber a mensagem de erro na secção "Sintomas".

Referências

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

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 de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
131462  (http://support.microsoft.com/kb/131462/EN-US/ ) COMO: Processar 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )