2010-03-10 7 views
29

Utilizando C# y WinForms en VS2008, deseo crear un control de explorador de archivos que se vea y actúe como el panel izquierdo en el Explorador de Windows. Para mi sorpresa, un control de este tipo no incluye .NET por defecto.¿Cómo crear un control de navegador de carpeta similar a Explorer?

Idealmente, me gustaría que su contenido sea exactamente el mismo que en Explorer. Por ejemplo, en Windows 7, debería mostrar las pseudo-carpetas de Favoritos y Bibliotecas. Por supuesto, no quiero codificar específicamente para cada versión de Windows si puedo evitarlo.

He navegado, y hay algunos ejemplos de tales controles, pero todos están hechos a mano y por lo tanto no funcionarán al 100% igual que el de Explorer.

¿De alguna manera puedo simplemente reutilizar el control Explorer en su lugar? O, si no, ¿para obtener acceso a un árbol de los elementos que mostraría?

+1

Sospecho que el control Explorer solo usa un control de árbol y lo rellena dentro del código de diálogo. No creo que sea un control específico el que muestre las carpetas. Podría estar equivocado. – Lazarus

+0

¿Está buscando 'FolderBrowserDialog'? ref: http://msdn.microsoft.com/en-us/library/system.windows.forms.folderbrowserdialog.aspx – shahkalpesh

+1

@shahkalpesh: No, esencialmente estoy buscando el control utilizado * dentro * de ese diálogo. – Thomas

Respuesta

28

Microsoft proporciona a walkthrough for creating a Windows Explorer style interface in C#. También hay varios ejemplos en Code Project y otros sitios. Los ejemplos inmediatos son Explorer Tree, My Explorer, File Browser y Advanced File Explorer, pero hay otros. Explorer Tree parece ser el mejor de la breve mirada que tomé.

Utilicé el término de búsqueda windows explorer tree view C# en Google para encontrar estos enlaces.

+2

Nuevamente, esos están reinventando la rueda, y están obligados a equivocarse en varios casos de esquina. Pero estoy aceptando esto porque proporcionó la mayor cantidad de enlaces útiles. – Thomas

+8

@Thomas: Piensa que reinventar la rueda es la única opción que tiene ya que Windows no expone ese control para usarlo fuera del Explorer. –

1

No es tan fácil como parece implementar un control como ese. Explorer funciona con elementos de shell, no elementos de sistema de archivos (por ejemplo, el panel de control, la carpeta de impresoras, etc.). Si necesita implementarlo, le sugiero echar un vistazo a las funciones del shell de Windows al http://msdn.microsoft.com/en-us/library/bb776426(VS.85).aspx.

+2

"No es tan fácil como parece implementar un control como ese". Me di cuenta que. Que es exactamente por lo que preferiría no reinventar la rueda. – Thomas

0

Eche un vistazo al conjunto de control Shell MegaPack. Proporciona Windows Explorer como carpeta/exploración de archivos con la mayoría de las características y funcionalidades como menús contextuales, cambio de nombre, arrastrar y soltar, íconos, iconos de superposición, miniaturas, etc.

+2

Ya me había encontrado con eso. Si esta no fuera mi primera aplicación comercial, felizmente pagaría esos $ 299, pero tal como están las cosas, no puedo permitirme eso. – Thomas

Cuestiones relacionadas