Introducción:
Los Smartphone no permiten usar la clase OpenFileDialog para seleccionar un
fichero, por eso me he fabricado un formulario que simula el comportamiento
de esa clase. Al menos así es en las versiones de .NET Compact Framework que
hay a la hora de escribir estas líneas.
Debido a que dependiendo de la versión del .NET que usemos habrá unas u otras
propiedades disponibles en los controles que he usado (aunque básicamente uso un
control ListView), he creado dos versiones de este componente, una es para usar
con Visual Studio 2003 y la otra es para usar con Visual Studio 2005 o Visual
Studio 2008, aunque el código de Visual Studio 2003 será válido para las demás
versiones, (aunque no al revés).
Debido a esa diferencia, te voy a mostrar en páginas independientes cada una
de estas dos versiones del formulario.
Ese formulario lo he definido como Friend (internal en C#), con idea de que
no se use directamente desde la aplicación, sino que en su lugar se usen unas
clases. Por supuesto, esta bajada del nivel de visibilidad tiene sentido si este
formulario está dentro de una DLL, que es como yo lo estoy utilizando. Pero
aunque el formulario se pueda usar directamente, mi recomendación es hacerlo
desde las clases que te muestro a continuación.
Para usar la clase OpenFileDialog, lo harás como es costumbre con esa misma
clase (cuando está disponible):
Dim oFD As New elGuille.Util.Mobile.Smartphone.OpenFileDialog
With oFD
.Title = "Seleccionar MP3"
.Filter = "Sonidos (*.mp3;*.wav)|*.mp3;*.wav|Todos los tipos (*.*)|*.*"
.FileName = txt.Text
If .ShowDialog = DialogResult.OK Then
txt.Text = .FileName
End If
End With
Aquí tienes las clases que se encargan de usar el formulario.
Las clases: FileDialog y OpenFileDialog
'------------------------------------------------------------------------------
' FileDialog (26/Dic/07)
' Clases para simular los cuadros de diálogos de seleccionar ficheros
' internamente usan el formulario fOpenFileDialog
'
' Estas clases se pueden usar para suplir la carencia de las clases
' OpenFileDialog y SaveFileDialog en los Smartphone (o Mobile Standard)
'
' ©Guillermo 'guille' Som, 2007
'------------------------------------------------------------------------------
Option Strict On
Imports Microsoft.VisualBasic
Imports System
Namespace elGuille.Util.Mobile.Smartphone
''' <summary>
''' Para simular el OpenFileDialog en los Smartphone (Windows Mobile Standard)
''' </summary>
''' <remarks></remarks>
Public NotInheritable Class OpenFileDialog
Inherits FileDialog
Sub New()
MyBase.mnuSeleccionar = "Abrir"
End Sub
End Class
Public MustInherit Class FileDialog
Private ofd As New fOpenFileDialog
Protected Property mnuSeleccionar() As String
Get
Return ofd.mnuSeleccionar.Text
End Get
Set(ByVal value As String)
ofd.mnuSeleccionar.Text = value
End Set
End Property
Public Property Title() As String
Get
Return ofd.Title
End Get
Set(ByVal value As String)
ofd.Title = value
End Set
End Property
Public Property Filter() As String
Get
Return ofd.Filter
End Get
Set(ByVal value As String)
ofd.Filter = value
End Set
End Property
Public Property FileName() As String
Get
Return ofd.FileName
End Get
Set(ByVal value As String)
ofd.FileName = value
End Set
End Property
Public Property BackColor() As System.Drawing.Color
Get
Return ofd.BackColor
End Get
Set(ByVal value As System.Drawing.Color)
ofd.BackColor = value
End Set
End Property
Public Property ForeColor() As System.Drawing.Color
Get
Return ofd.ForeColor
End Get
Set(ByVal value As System.Drawing.Color)
ofd.ForeColor = value
End Set
End Property
Public Function ShowDialog() As System.Windows.Forms.DialogResult
Return ofd.ShowDialog()
End Function
End Class
End Namespace
Espero que te sea de utilidad.
Nos vemos.
Guillermo
Artículos y colaboraciones publicadas antes de 2012
Nota:
La mayoría del código de ejemplo, contienen más cosas de las indicadas en el título o link, por tanto te recomiendo que le eches un vistazo por si está lo
que realmente andas buscando.
También quiero recordarte que en la mayoría de los casos, al menos en los links con fecha 15 de enero 2002 y posteriores en los que "el Guille" es el autor
(yo), el mismo código se muestra tanto para Visual Basic como para C#, salvo casos muy concretos en los que se explican cosas específicas de cada lenguaje...
o porque no he tenido tiempo de convertirlo, je, je.
Notas:
-El código mostrado en estas páginas es de libre uso, el único requisito para poder usarlo, es citar la procedencia del mismo.
-Para poder usar los tutoriales o los artículos, por ejemplo para publicarlos en otro sitio, tendrás que pedir autorización al autor antes de
publicarlos (completo o en parte), y si es una colaboración, mándame copia de esa autorización a mi cuenta de correo: mensaje EN elguille.info.
Gracias.