Ir al índice principal
el Guille, la Web del Visual Basic, C#, .NET y más...
  Lo+ - WinFX - .NET - ADO.NET - ASP.NET - Cómo... - Colabora - VB6 - HTML - Vista - Links - Foros  

Buscar en Google y en elGuille.info:
Google
 

Simular OpenFileDialog en Smartphone

 
Publicado el 28/Dic/2007
Actualizado el 28/Dic/2007
Autor: Guillermo 'guille' Som

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.

 


 

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

 


Código de ejemplo (comprimido):

El código de ejemplo es el mostrado en esta página, de haber algún proyecto con el código completo, estará en cda una de las páginas en las que muestro el código del formulario.




Contribuye con el Guille
Aporta tu granito de arena y ayuda a mantener el sitio del Guille...


Cosas que te pueden interesar



Mentor de
Solid Quality mentors
Most Valuable Professional
MVP de Visual Basic desde 1997



Orador internacional de Ineta
Orador de Ineta Latam

ir al índice del Guille

Valid XHTML 1.0 Transitional


Escribir un mensaje al Guille (mensaje EN elGuille.info)
Has entrado usando el host: www.elguille.info
Puedes verlo también en: http://www.mundoprogramacion.com/net/netcf/simular_openfiledialog_smartphone.aspx