Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: z3nth10n en 24 Enero 2013, 20:46 pm



Título: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 24 Enero 2013, 20:46 pm
Hola pues bueno, quiero hacer algo así:

(http://i.imgur.com/z0eJvr0.png)

Y que cuando le hagamos click a una carpeta pues se cambie de directorio:

La ruta la tengo seteada como "Ruta", en un Dim Ruta As String = "aqui iria la ruta seleccionada a otra ves del FolderBrowserDialog"

Necesito por lo menos que me digais como saco la direccion a través de un:  "selecteditemchanged".

Un saludo.



EDITO:

Enconte un codigo que lo hace todo, codigo aquí:

Código
  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        Try
  3.            ' Configuración del FolderBrowserDialog
  4.            With FolderBrowserDialog1
  5.  
  6.                .Reset() ' resetea
  7.  
  8.                ' leyenda
  9.                .Description = " Seleccionar una carpeta "
  10.                ' Path " Mis documentos "
  11.                .SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  12.  
  13.                ' deshabilita el botón " crear nueva carpeta "
  14.                .ShowNewFolderButton = False
  15.                '.RootFolder = Environment.SpecialFolder.Desktop
  16.                '.RootFolder = Environment.SpecialFolder.StartMenu
  17.  
  18.                Dim ret As DialogResult = .ShowDialog ' abre el diálogo
  19.  
  20.                ' si se presionó el botón aceptar ...
  21.                If ret = Windows.Forms.DialogResult.OK Then
  22.  
  23.                    Dim nFiles As ObjectModel.ReadOnlyCollection(Of String)
  24.  
  25.                    nFiles = My.Computer.FileSystem.GetFiles(.SelectedPath)
  26.  
  27.                    MsgBox("Total de archivos: " & CStr(nFiles.Count), _
  28.                                            MsgBoxStyle.Information)
  29.                End If
  30.  
  31.                .Dispose()
  32.  
  33.            End With
  34.        Catch oe As Exception
  35.            MsgBox(oe.Message, MsgBoxStyle.Critical)
  36.        End Try
  37.    End Sub
  38.  

Si tengo alguna duda, pues pregunto. :)



Tengo una duda:

Código
  1.                If ret = Windows.Forms.DialogResult.OK Then
  2.  
  3.                    Dim nFiles As ObjectModel.ReadOnlyCollection(Of String)
  4.  
  5.                    nFiles = My.Computer.FileSystem.GetFiles(.SelectedPath)
  6.  
  7.                    MsgBox("Total de archivos: " & CStr(nFiles.Count), _
  8.                                            MsgBoxStyle.Information)
  9.                End If
  10.  

Lo que quiero hacer es setear la direccion desde aqui, pero no tengo ni idea, porque nunca maneje este campo.

Un saludo.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 09:42 am
Lo que quiero hacer es setear la direccion desde aqui, pero no tengo ni idea, porque nunca maneje este campo.

Código
  1. Dim Folder As String = FBD.SelectedPath ' Aquí tienes "la dirección"

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim FBD As New FolderBrowserDialog
        FBD.Description = " Seleccionar una carpeta "
        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

        Dim Resultado As DialogResult = FBD.ShowDialog
        If Resultado = Windows.Forms.DialogResult.OK Then
            Dim Folder As String = FBD.SelectedPath ' Aquí tienes "la dirección"
            MsgBox("Carpeta seleccionada: " & vbnewline & Folder)
        End If

        FBD.Dispose()

    End Sub


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 16:36 pm
Código
  1. Dim Folder As String = FBD.SelectedPath ' Aquí tienes "la dirección"

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim FBD As New FolderBrowserDialog
        FBD.Description = " Seleccionar una carpeta "
        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

        Dim Resultado As DialogResult = FBD.ShowDialog
        If Resultado = Windows.Forms.DialogResult.OK Then
            Dim Folder As String = FBD.SelectedPath ' Aquí tienes "la dirección"
            MsgBox("Carpeta seleccionada: " & vbnewline & Folder)
        End If

        FBD.Dispose()

    End Sub


Gracias por ese c&p oculto xD

Un duda, y si quiero setear una variable general desde un sub nivel? Es decir desde el "If Resultado = Windows.Forms.DialogResult.OK Then" poner una variable general que valga tambien para: "Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)"

Un saludo.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 16:46 pm
Un duda, y si quiero setear una variable general desde un sub nivel? Es decir desde el "If Resultado = Windows.Forms.DialogResult.OK Then" poner una variable general que valga tambien para: "Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)"

Eing?

No se si te he entendido muy bien...

Las variables declaradas dentro de un sub, se quedan en el sub.

Ya te dije que leyeses los tipos de variables y declaraciones.

EDITO: Todas las variables que vayas a usar en más de un sub/ocasión las deberías declarar fuera de los subs... ejemplo:

Código:
class

Public putavariable as string

form load sub
  putavariable = "putovalor"
  sub1()
end sub

sub1
  msgbox(putavariable)
end sub

end class

xD saludos.


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 18:15 pm
Eing?

No se si te he entendido muy bien...

Las variables declaradas dentro de un sub, se quedan en el sub.

Ya te dije que leyeses los tipos de variables y declaraciones.

EDITO: Todas las variables que vayas a usar en más de un sub/ocasión las deberías declarar fuera de los subs... ejemplo:

Código:
class

Public putavariable as string

form load sub
  putavariable = "putovalor"
  sub1()
end sub

sub1
  msgbox(putavariable)
end sub

end class

xD saludos.

Y como lo puedo pasar de form a form? xD Me refiero a la putavariable xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 18:34 pm
Y como lo puedo pasar de form a form? xD Me refiero a la putavariable xD

Código
  1. Public Shared puta_variable As String = "Elektro H@cker"
  2.  
  3. MsgBox(Form1.puta_variable)

saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 19:40 pm
Código
  1. Public Shared puta_variable As String = "Elektro H@cker"
  2.  
  3. MsgBox(Form1.puta_variable)

saludos

Bueno, pues llevo con un error putandome de hay la variable xD un ratillo.

Necesito declarar una primera variable para que se pueda abrir de hay tu ultimo codigo, pero cuando se va abrir el form 2 me suelta este error:

(http://i.imgur.com/HBcFtuC.png)

Y luego pa colmo, necesito guardarlo en un archivo dat o dentro del mismo exe para que la proxima vez se guarde y se ejecute esa direccion.

Es decir, necesita una direccion base para abrir y  luego cargar otra direccion que seria la guardada de la ultima vez.  :-\



Y a ver si me ayudas con el paquete en castellano  :-\ :-\


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 20:04 pm
El error está más que claro, la variable "Folder" está vacía, y en la imagen lo puedes ver en los autos:   "Folder > value Nothing"

¿Porque no te fijas en lo que estás haciendo?

1. declaras la variable en el form2
2. no le das ningún valor a esa NUEVA variable
3. intentas usar la variable en el método "getfiles" (pero la variable no contiene ningún valor, así que KABOOM!)

Te he explicado como usar las variables en otras class.

1. declaras la variable en EL PRIMER FORM (form1.vb)
2. la usas así en el resto de forms:   msgbox(form1.mivariable)

PD: O puedes hacer un form, lo llamas "Variables Globales.vb" y ahi metes las p*tas variables que desees, tienes un ejemplo de eso en el post de los snippets (sintaxis > global variables) ahí tienes un ejemplo bueno.





necesito guardarlo en un archivo dat o dentro del mismo exe para que la proxima vez se guarde y se ejecute esa direccion.

Olvídate de crear archivos innecesarios para guardar "opciones" o cosas así, esto no es Batch, todo es más simple.

Debes crear una setting en tu proyecto, y luego es tán sencillo como hacer... :

Código
  1. my.settings.MiOpcion = Folder
  2. my.settings.save()

Código
  1. form1 load sub
  2.  msgbox(my.settings.MiOpcion) ' la última ruta guardada...
  3. end sub

EDITO: Bueno en realidad esto se guarda en el archivo settings.cfg del programa, pero eso ya es otra cosa xD.




Si realmente quieres aprender te va a ser mucho más dificil si te modificas el lenguaje de la IDE al castellano, más que nada porque no vas a encontrar referencias en castellano ni ayuda en ningún sitio cuando tengas un problema en concreto sobre la IDE y necesites buscar un código o solución en Google, todos los terminos son en ingles, y hay que aprender a usar en inglés, déjate eso para cuando sepas mejor las cosas.

saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 20:14 pm
El error está más que claro, la variable "Folder" está vacía.

Me pregunto porque a veces seré tan cazurro. xD
La verdad que lo imagine, pero me faltaba un puto Form1. xDDD

En fin

Ahora tengo que hacer que se actualice el ListBox cuando lo ejecute en el FolderBrowserDialog, porque no hace nada. Le echare un vistazo igualmente.  :xD

Si realmente quieres aprender te va a ser mucho más dificil si te modificas el lenguaje de la IDE al castellano, más que nada porque no vas a encontrar referencias en castellano ni ayuda en ningún sitio cuando tengas un problema en concreto sobre la IDE y necesites buscar un código o solución en Google, todos los terminos son en ingles, y hay que aprender a usar en inglés, déjate eso para cuando sepas mejor las cosas.

saludos

Se bastante ingles o eso creo, y la verdad es que aunque tenga el programa en Español se me da igual, yo lo traduzco al ingles y busco en ingles que es lo que hago xDDD



Hihihihihi, que burraco soy, hay conflicto entre el Folder del Form1 y el del Form2 aunque no lo diga se ve claramente. XD Como hagi para anular el Folder del Form1.Folder y tomar el nuevo folder?

Codigo:
Código
  1. Dim Files As Array = IO.Directory.GetFiles(Form1.Folder, "*", IO.SearchOption.TopDirectoryOnly)


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 20:23 pm
Se bastante ingles o eso creo, y la verdad es que aunque tenga el programa en Español se me da igual, yo lo traduzco al ingles y busco en ingles que es lo que hago xDDD


Yo también se mucho (Inglés leido) y te aseguro que saber no te va a servir de nada cuando empiezas a aprender un programa y necesitas leer tutoriales y manuales,
prueba a aprender Photoshop con la APP en castellano y todos los tutoriales/pasos en Inglés, y me cuentas que tál te fue...

Para usar el VS al Español y sin miedo hay que estar al nivel de Seba123Neo xD





hay conflicto entre el Folder del Form1 y el del Form2 aunque no lo diga se ve claramente. XD Como hagi para anular el Folder del Form1.Folder y tomar el nuevo folder?

Codigo:
Código
  1. Dim Files As Array = IO.Directory.GetFiles(Form1.Folder, "*", IO.SearchOption.TopDirectoryOnly)

Pero si ya tienes la variable declarada en el form1, ¿Quieres crear la misma variable y con el mismo valor en el form2?


Código:
form1
public folder as string
end class

form2
dim folder2 as string = form1.folder
Dim Files As Array = IO.Directory.GetFiles(folder2 , "*", IO.SearchOption.TopDirectoryOnly)


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 20:55 pm
Yo también se mucho (Inglés leido) y te aseguro que saber no te va a servir de nada cuando empiezas a aprender un programa y necesitas leer tutoriales y manuales,
prueba a aprender Photoshop con la APP en castellano y todos los tutoriales/pasos en Inglés, y me cuentas que tál te fue...

Ese tal Sebaneo me suena su nombre, refrescame la memoria XD

Para usar el VS al Español y sin miedo hay que estar al nivel de Seba123Neo xD





Pero si ya tienes la variable declarada en el form1, ¿Quieres crear la misma variable y con el mismo valor en el form2?


Código:
form1
public folder as string
end class

form2
dim folder2 as string = form1.folder
Dim Files As Array = IO.Directory.GetFiles(folder2 , "*", IO.SearchOption.TopDirectoryOnly)

Con el mismo valor no, con el nuevo valor del FolderBrowserDialog xD  ;-)


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 21:20 pm
Ese tal Sebaneo me suena su nombre, refrescame la memoria XD

Uno de los moderadores de esta sección.


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 21:42 pm
Uno de los moderadores de esta sección.

Y la otra pregunta no me la respondes, si es que si es que xD  >:D :xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 25 Enero 2013, 21:49 pm
Y la otra pregunta no me la respondes, si es que si es que xD  >:D :xD

Antes de tu nueva edición era una pregunta inentendible.

Con el mismo valor no, con el nuevo valor del FolderBrowserDialog xD

y digo yo... ¿Y porqué no lo haces de la misma manera que lo haces con el antiguo valor del folderbrowserdialog?  (c&p oculto)

PD: si no es eso da más datos del problema... pon tu código.

saludos



Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 25 Enero 2013, 21:57 pm
Antes de tu nueva edición era una pregunta inentendible.

y digo yo... ¿Y porqué no lo haces de la misma manera que lo haces con el antiguo valor del folderbrowserdialog?  (c&p oculto)

PD: si no es eso da más datos del problema... pon tu código.

saludos



Lo que intento hacer es editar el Folder desde:

Código
  1.        If Resultado = Windows.Forms.DialogResult.OK Then
  2.               ' Aquí iria el codigo
  3.        End If
  4.  

Pero hay conflicto porque hay ya un Folder definido, que por cierto lo quite de Form1,


Código
  1. Option Explicit On
  2.  
  3. Public Class Form2
  4.  
  5.    Dim Listita As New ListBox
  6.    Dim FBD As New FolderBrowserDialog
  7.  
  8.  
  9.    Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  10.        Listita.BackColor = Color.White
  11.        Listita.ForeColor = Color.Black
  12.        Listita.Size = New Point(340, 251)
  13.        Listita.Location = New Point(12, 25) ' Dejo un margen de espacio de 100 px porque solo quieres ocupar "la mayor parte"
  14.        AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged
  15.        Me.Controls.Add(Listita)
  16.  
  17.        Dim Folder As String = "C:\Users\Alvaro\Documents"
  18.        Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)
  19.  
  20.        For Each File In Files
  21.            Dim File_Info As New IO.FileInfo(File)
  22.            Listita.Items.Add(File_Info.Name)
  23.        Next
  24.  
  25.        Dim Files1 As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.System), "*", IO.SearchOption.TopDirectoryOnly)
  26.        Dim TotalRoms As Int32 = Files1.Length
  27.        Label1.Text = "Roms encontrados (" & TotalRoms & ")"
  28.    End Sub
  29.  
  30.    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  31.        Me.Close()
  32.    End Sub
  33.  
  34.    Private Sub Listita_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  35.        Dim Item As String = Listita.SelectedItem
  36.        MsgBox(Folder + Item)
  37.    End Sub
  38.  
  39.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  40.        FBD.Description = " Seleccionar una carpeta "
  41.        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  42.        FBD.ShowNewFolderButton = True
  43.        Dim Folder As String = FBD.SelectedPath
  44.        Dim Resultado As DialogResult = FBD.ShowDialog
  45.        If Resultado = Windows.Forms.DialogResult.OK Then
  46.  
  47.        End If
  48.  
  49.        FBD.Dispose()
  50.    End Sub
  51. End Class

Un saludo.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 09:10 am
Cláramente se vé que declaras dos "Folder" privadas en el form que has posteado.

hay conflicto porque hay ya un Folder definido

Tú mismo te respondes... usa el buscador de la IDE, Ctrl + F, y buscas "Folder" en la solución entera.



Citar
Código
  1. Dim Files1 As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.System), "*", IO.SearchOption.TopDirectoryOnly)
  2.       Dim TotalRoms As Int32 = Files1.Length
  3.       Label1.Text = "Roms encontrados (" & TotalRoms & ")"

Una pregunta: ¿ese código que te puse lo sigues teniendo de decoración?, ¿entiendes el code?.

Y otra pregunta, ¿Porque tienes dos forms?,
cada uno es libre de crear los forms que quiera en su aplicación... pero digo yo que en una app tán pequeña no es necesario más de un form porque no necesita más de 200 líneas de código xD...

saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 10:48 am
Cláramente se vé que declaras dos "Folder" privadas en el form que has posteado.

Tú mismo te respondes... usa el buscador de la IDE, Ctrl + F, y buscas "Folder" en la solución entera.

Si pero como declaro un Form si necesito las 2, a no ser que hiciese una matriz xD Pero igualmente necesito declarar la primera pa que no me suelte un error, como lo haria? Y luego otra que seria de le My.Setting, como lo hariax2? xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 11:20 am
pues dále otro nombre a la segunda variable...

esto ya te lo puse antes:

Código:
form1
public folder as string = "C:\"


form2
public folder2 as string = form1.folder


No uses el mismo nombre de variable para todo...


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 11:55 am
pues dále otro nombre a la segunda variable...

esto ya te lo puse antes:

Código:
form1
public folder as string = "C:\"


form2
public folder2 as string = form1.folder


No uses el mismo nombre de variable para todo...

Pero es que si lo cambio sea lo que sea que cambie igualmente, no voy a poderr hacer una variable para las dos, porque el nombre va a estar cambiando, es decir que si la variable que toma es Folder, yo no le puedo meter la variable Folder2, poque no la va a enternder, me explico?

A ver si me pouedes hacer un codigo o algo  :laugh:


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 12:22 pm
No entiendo tu problema Seazoux, y no creo que séa tán dificil declarar una variable en el form principal y usarla en las otras classes, pues te he dado mil ejemplos ya.

De todas formas, si te es tán complicado entonces deberías olvidarte de variables y crear una setting por ejemplo:
Código:
My.Settings.Folder

Ahí guardas el valor de la ruta y eso te sirve para cualquier form, y sin movidas.

Saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 12:29 pm
No entiendo tu problema Seazoux, y no creo que séa tán dificil declarar una variable en el form principal y usarla en las otras classes, pues te he dado mil ejemplos ya.

De todas formas, si te es tán complicado entonces deberías olvidarte de variables y crear una setting por ejemplo:
Código:
My.Settings.Folder

Ahí guardas el valor de la ruta y eso te sirve para cualquier form, y sin movidas.

Saludos

Me va a ser mucho mas facil, y si quiero editar las settings de ese My.Setting desde el

Código:
If Resultado = Windows.Forms.DialogResult.OK Then
               ' Aquí iria el codigo
        End If

?


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 12:30 pm
Código:
my.settings.myvariable = fbd.selectedpath


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 13:09 pm
Código:
my.settings.myvariable = fbd.selectedpath

Pues si pongo:

Código
  1. My.Settings.Folder = FBD.SelectedPath

Me dice:

Error   1   'Folder' is not a member of 'WindowsApplication1.My.MySettings'.   C:\Users\Alvaro\Documents\VisualBasic NET\Projectos\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   46   13   WindowsApplication1




Bueno, ahora necesitamos hardcodear esto, como vistes hay un boton que sale: "Descargar roms"

Deberia hacer algo asi:

*Espera que voy a subir la foto*


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 13:45 pm
Citar
Pues si pongo:
Código
  1. My.Settings.Folder = FBD.SelectedPath

Me dice:
Error   1   'Folder' is not a member of 'WindowsApplication1.My.MySettings'.   C:\Users\Alvaro\Documents\VisualBasic NET\Projectos\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   46   13   WindowsApplication1

Es que no has creado ninguna setting.

Google + vbnet how create my.settings

saludos.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 14:03 pm
En serio, no sé como se te puede dar tán dificil una variable.

Te vuelvo a repetir lo de antes:

1. Estás declarando la variable en el form, fuera de los subs.
2. No le das ningun valor a la variable.
3. En el form load intentas usar la variable, que no contiene ningún valor, y eso son dos errores, porque no sé que pinta ahí lo que haces en el form load, cuando debería estar todo en el sub del botón.

Repito las cosas y no haces caso.

Código
  1. Public Class Form2
  2.  
  3.    Dim Listita As New ListBox
  4.  
  5.    Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  6.        Listita.BackColor = Color.White
  7.        Listita.ForeColor = Color.Black
  8.        Listita.Size = New Point(340, 251)
  9.        Listita.Location = New Point(12, 25)
  10.        AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged
  11.        Me.Controls.Add(Listita)
  12.    End Sub
  13.  
  14.    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  15.        Me.Close()
  16.    End Sub
  17.  
  18.    Private Sub Listita_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  19.        Dim Item As String = Listita.SelectedItem
  20.    End Sub
  21.  
  22.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  23.        Dim FBD As New FolderBrowserDialog
  24.        FBD.Description = " Seleccionar una carpeta "
  25.        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  26.        FBD.ShowNewFolderButton = True
  27.        Dim Resultado As DialogResult = FBD.ShowDialog
  28.        If Resultado = Windows.Forms.DialogResult.OK Then
  29.        Try
  30.                Dim Folder As String = FBD.SelectedPath
  31.                Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)
  32.                Dim TotalRoms As Int32 = Files.Length
  33.                Listita.Items.Clear()
  34.                For Each File In Files
  35.                    Dim File_Info As New IO.FileInfo(File)
  36.                    Listita.Items.Add(File_Info.Name)
  37.                Next
  38.                Label1.Text = "Roms encontrados (" & TotalRoms & ")"
  39.            Catch ex As Exception
  40.                MsgBox(ex.Message)
  41.            End Try
  42.        End If
  43.        FBD.Dispose()
  44.    End Sub
  45.  
  46. End Class

Saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 14:17 pm
Si pero ahora, no se carga nada al principio, sale en blanco xD
Tendre que usar el my.settings xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 26 Enero 2013, 14:27 pm
Cual es el problema principal? ya no se entiende nada, si te explicas desde un principio lo que necesitas claramente tal vez te puedamos ayudar mejor.


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 15:00 pm
Cual es el problema principal? ya no se entiende nada, si te explicas desde un principio lo que necesitas claramente tal vez te puedamos ayudar mejor.

Simplemente como se maneja el App.config, porque estoy mirando, pero lo unico que encuentro es para VB.net 2005 y no el VS 2012, y aqui lo dice muy claro:

Código
  1. <userSettings>
  2.    <WindowsApplication1.My.MySettings>
  3.       <setting name="myBackColor" serializeAs="String">
  4.          <value>Control</value>
  5.       </setting>
  6.    </WindowsApplication1.My.MySettings>
  7.  

pero me dice que userSettings no esta declarado.

Que alguien me traduzca esto al VS 2012:

Código
  1. <userSettings>
  2.    <WindowsApplication1.My.MySettings>
  3.       <setting name="Folder" serializeAs="String">
  4.          <value>FBD.SelectedPath</value>
  5.       </setting>
  6.    </WindowsApplication1.My.MySettings>
  7.  

Un saludo.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 15:11 pm
No todo es necesario codearlo, dispones de un menú en la IDE para crear las APP/USER settings:

Project > windowsapplication properties > settings

o dale doble click en "my project" en el "solution explorer"

Código:
Nombre: Folder Type: String Scope: User Value: (nada de nada)
Y listo, ya habrás creado tu setting/propiedad

saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 18:10 pm
No todo es necesario codearlo, dispones de un menú en la IDE para crear las APP/USER settings:

Project > windowsapplication properties > settings

o dale doble click en "my project" en el "solution explorer"

Código:
Nombre: Folder Type: String Scope: User Value: (nada de nada)
Y listo, ya habrás creado tu setting/propiedad

saludos

Pero aunque le ponga un value ni si quiera se carga.  :xD



Le puse My.Settings.Folder = FBD.SelectedPath

Pero npi de como hacer cargar el value de esa propiedad.  :¬¬


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 26 Enero 2013, 18:46 pm
Lo que intento hacer es editar el Folder desde:

Código
  1.        If Resultado = Windows.Forms.DialogResult.OK Then
  2.               ' Aqu&#237; iria el codigo
  3.        End If
  4.  

Pero hay conflicto porque hay ya un Folder definido, que por cierto lo quite de Form1,


Código
  1. Option Explicit On
  2.  
  3. Public Class Form2
  4.  
  5.    Dim Listita As New ListBox
  6.    Dim FBD As New FolderBrowserDialog
  7.  
  8.  
  9.    Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  10.        Listita.BackColor = Color.White
  11.        Listita.ForeColor = Color.Black
  12.        Listita.Size = New Point(340, 251)
  13.        Listita.Location = New Point(12, 25) ' Dejo un margen de espacio de 100 px porque solo quieres ocupar "la mayor parte"
  14.        AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged
  15.        Me.Controls.Add(Listita)
  16.  
  17.        Dim Folder As String = "C:\Users\Alvaro\Documents"
  18.        Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)
  19.  
  20.        For Each File In Files
  21.            Dim File_Info As New IO.FileInfo(File)
  22.            Listita.Items.Add(File_Info.Name)
  23.        Next
  24.  
  25.        Dim Files1 As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.System), "*", IO.SearchOption.TopDirectoryOnly)
  26.        Dim TotalRoms As Int32 = Files1.Length
  27.        Label1.Text = "Roms encontrados (" & TotalRoms & ")"
  28.    End Sub
  29.  
  30.    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  31.        Me.Close()
  32.    End Sub
  33.  
  34.    Private Sub Listita_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  35.        Dim Item As String = Listita.SelectedItem
  36.        MsgBox(Folder + Item)
  37.    End Sub
  38.  
  39.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  40.        FBD.Description = " Seleccionar una carpeta "
  41.        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  42.        FBD.ShowNewFolderButton = True
  43.        Dim Folder As String = FBD.SelectedPath
  44.        Dim Resultado As DialogResult = FBD.ShowDialog
  45.        If Resultado = Windows.Forms.DialogResult.OK Then
  46.  
  47.        End If
  48.  
  49.        FBD.Dispose()
  50.    End Sub
  51. End Class

Un saludo.

Tenes que poner la linea Dim Folder As String = "C:\Users\Alvaro\Documents" junto con estas otras para que quede asi:

Dim Listita As New ListBox
Dim FBD As New FolderBrowserDialog
Dim FolderPrincipal As String = "C:\Users\Alvaro\Documents"

Asi la nueva variable FolderPrincipal se podra usar desde cualquier procedimiento o funcion.

Luego si podras usar esa variable aca:

Código
  1. If Resultado = Windows.Forms.DialogResult.OK Then
  2.  FolderPrincipal = folder ' si es que querias hacer esto (poner la nueva carpeta seleccionada)
  3.        End If
  4.  


Nada mas, nada de complicaciones, por lo menos es lo que te he entendido.


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 19:09 pm
No tengo actualizado ese codigo, ahora lo que intento leer es la variable haciendo una pequeña prueba:

Código
  1. MsgBox("La ruta del Folder deberia salir aquí: " & My.Settings.Folder)

Pero no me sale nada de nada y eso que le tengo un value puesto.  >:D


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 19:20 pm
Código
  1. MsgBox("La ruta del Folder deberia salir aquí: " & My.Settings.Folder)

no me sale nada de nada y eso que le tengo un value puesto. >:D

Si la propiedad tiene un valor de tipo string, entonces ese msgbox debería funcionar,
a menos que hayas eliminado el valor de la propiedad en alguna parte dle código . . . y si no muestra nada, entonces es que la propiedad no tiene ningún valor, está vacía.

Sincéramente no se te puede ayudar si no aportas datos, ¿como esperas que te digamos cual es el problema en esa línea de código si no muestras más información?

1. la excepción que te marca la IDE, eso haznos el favor a todos de ponerlo siempre cuando postees un problema, xq yo por ejemplo me canso de postear para pedirte más información siempre...
2. Una imagen de tus "settings"
3. el código del sub donde intentas usar la variable

eso estaría bien...

Saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 19:25 pm
Directamente te paso el codigo por un MP y listo.  :P


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 26 Enero 2013, 19:33 pm
Estoy casi seguro que lo que quieres es mas simple de lo que crees, es exactamente lo que te dije yo seguramente. No necesitas hacer nada de Settings y no se que mas, es mas simple.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 19:36 pm
Estoy casi seguro que lo que quieres es mas simple de lo que crees, es exactamente lo que te dije yo seguramente. No necesitas hacer nada de Settings y no se que mas, es mas simple.

Pienso lo mismo, unos comentarios atrás en este post puedes ver como le modifiqué el form con los cambios que le has comentado tú $Edu$, pero ni así...
si sé le da mal las variables creo que mejor con settings xD...

no me sale nada de nada y eso que le tengo un value puesto.  >:D

A mi me funciona bien, me sale un msgbox con el valor de la setting: "Aquí debería salir el Folder"

reinicia el VS a ver a veces hace cosas raras xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 19:39 pm
A mi me funciona bien, me sale un msgbox con el valor de la setting: "Aquí debería salir el Folder"

reinicia el VS a ver a veces hace cosas raras xD

Ni p**a idea, pero que no me funciona, pero WTF?????


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 19:45 pm
Código
  1.    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  2.        MsgBox("Test:" & My.Settings.Folder)
  3.    End Sub

Pues te aseguro que tál y como lo tienes funciona, no he tocaod nada, y muestra el valor "Aquí debería salir el Folder".

Prueba a limpiar el proyecto y vuelve a recounstruirlo.  (Clean, rebuild solution)

Una pregunta... tú estás usando settings para recordar la última ruta, cuando cierras y vuelves a abrir la aplicación? o lo estás usando como alternativa a usar variabls?

Porque en segundo caso, deberías intentarlo con variables como dice $Edu$, es que si no puedes con una maldita variable... no vas a poder hacer por tí mismo xD.

Saludos!


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 19:48 pm
Código
  1.    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  2.        MsgBox("Test:" & My.Settings.Folder)
  3.    End Sub

Pues te aseguro que tál y como lo tienes funciona, no he tocaod nada, y muestra el valor "Aquí debería salir el Folder".

Prueba a limpiar el proyecto y vuelve a recounstruirlo.  (Clean, rebuild solution)

Una pregunta... tú estás usando settings para recordar la última ruta, cuando cierras y vuelves a abrir la aplicación? o lo estás usando como alternativa a usar variabls?

Porque en segundo caso, deberías intentarlo con variables como dice $Edu$, es que si no puedes con una maldita variable... no vas a poder hacer por tí mismo xD.

Saludos!

Lo estoy usando para la primera opcion xD ahora me enseñaras a usar el MySettings.Save xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 19:49 pm
ahora me enseñaras a usar el MySettings.Save xD
No tiene ningún misterio,

Código
  1. MySettings.Save()

Fín.

-.-

* Y así guardas todos los cambios de los valores de todas tus settings.

* Y puedes activar la opción de salvar automáticamente las settings al cerrar la APP.





Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 19:55 pm
Respecto al MsgBox VB.net me está trolleando acabo de reinicar el PC y nada. xD



Mira esto:

(http://i.imgur.com/OsOfSkk.png)


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 26 Enero 2013, 20:00 pm
Respecto al MsgBox VB.net me está trolleando acabo de reinicar el PC y nada. xD

MÁS DATOS PORFAVOR.

Te salta una excepción? o te sale el valor vacío ? o que te sale?


Vale la has cagado un poco xD.

En el solution explorer dale a "show all files" y busca el "settings.designer.vb"
y comprueba el "mySettings" expandiendo el "settings.designer.vb" ahi mismo
¿Tienes uno, o dos? si tienes dos, borra el nuevo que te lo habrá creado el VS por un error (una vez me pasó eso).

Y comprueba que no tienes el "app.config" vacío.


No sorry, me sale solo 1, no se.  :-\

Te recomiendo que te descargues el proyecto que me has pasado a mi, porque me funciona sin ningún error:
http://www.mediafire.com/?0waco6kynzgaovx

o al menos reemplaza el app.config del proyecto que me has mandado al tuyo y el settings.designer si no lo tienes igual

saludos



Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 20:02 pm
MÁS DATOS PORFAVOR.

Te salta una excepción? o te sale el valor vacío ? o que te sale?



Sale el valor vacio:

(http://i.imgur.com/OsOfSkk.png)



No sorry, me sale solo 1, no se.  :-\



Ni idea, pero me sigue saliendo todo igual xD

Una cosilla, afecta que tenga instalado el Frameowork .NET 3.5 y el 2.0?  :xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 26 Enero 2013, 20:45 pm
Descargue el proyecto tuyo y le hice los cambios que te decia hoy. Modifique el Form2.
Ejecuta el programa, y hace click en el boton Test para ver si te sale la ruta que queres, o si es lo que querias hacer.

http://www.mediafire.com/?w5ycx4b6j884yb8


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 21:07 pm
Descargue el proyecto tuyo y le hice los cambios que te decia hoy. Modifique el Form2.
Ejecuta el programa, y hace click en el boton Test para ver si te sale la ruta que queres, o si es lo que querias hacer.

http://www.mediafire.com/?w5ycx4b6j884yb8

Invalid or Deleted File.  :-\


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 26 Enero 2013, 23:35 pm
A ver ahora: http://www.mediafire.com/?urhcrxt9mz0s2xp


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 26 Enero 2013, 23:48 pm
A ver ahora: http://www.mediafire.com/?urhcrxt9mz0s2xp

Primer fallo:


Error   1   'Folder' is not declared. It may be inaccessible due to its protection level.   C:\Users\Alvaro\Documents\VisualBasic NET\Proyectos\WebKitEmulatorBeta\WebKitEmulator\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   51   32   WindowsApplication1



 :-\ :-\ :-\



Ya arregle ese bug, pero igualmente me quedo con la otra version, sigue los hilos del tema y gracias por tu esfuerzo, Edu me recomiendas que me quite el NET 2.0 y 3.5?  ;-)


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 27 Enero 2013, 00:38 am
La verdad que no tengo el Visual Studio instalado ahora mismo por eso solo modifique desde el notepad, pero tendria que andar, no hice nada raro ni mal.

Seguro has compilado el proyecto para ejecutarlo a ver si anda? es decir desde el mismo IDE como siempre pero digo esto porque tal vez fuiste directamente a la carpeta Bin a ejecutar el programa y entonces ese programa.exe es viejo y no el actualizado.

No se la verdad, por lo menos viste lo que cambie? asi como te decia. Dime solo si es eso lo que quieres hacer, aunque no funcione quiero saberlo.

No quites nada, tu instalaste el Visual Studio 2008 o el 2010 o 2012 y ahi te instalo el framework correspondiente a la version, no toques nada.


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 27 Enero 2013, 09:42 am
$Edu$ no declaraste la variable "Folder" y aquí la intentas usar, seazoux lleva razón.
Código:
FolderPrincipal = Folder ' SE GUARDA EL DIRECTORIO EN LA VARIABLE PUBLICA




@Seazoux
Te añado las modificaciones que quieres en el código que ya te modifiqué hace 2 páginas en este hilo...

FÍJATE EN LOS CAMBIOS Y VERÁS COMO ERA TODO MUY FÁCIL

PD: Antes de usar este código vacía el valor de la setting en la IDE

Código
  1.    Public Class Form2
  2.  
  3.    Dim Listita As New ListBox
  4.  
  5.    Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  6.        With Listita
  7.            .BackColor = Color.White
  8.            .ForeColor = Color.Black
  9.            .Size = New Point(340, 251)
  10.            .Location = New Point(12, 25)
  11.            AddHandler .SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged
  12.        End With
  13.        Me.Controls.Add(Listita)
  14.        if My.Settings.Folder isnot nothing then LoadFolder(My.Settings.Folder) ' Aquí cargas el último directorio que se cargó al salir de la aplicación
  15.    End Sub
  16.  
  17.    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  18.        Me.Hide()
  19.    End Sub
  20.  
  21.    Private Sub Listita_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  22.        Dim Item As New IO.FileInfo(My.Settings.Folder & "\" & Listita.SelectedItem)
  23.        MsgBox(Item.FullName)
  24.    End Sub
  25.  
  26.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  27.        Dim FBD As New FolderBrowserDialog
  28.        FBD.Description = " Seleccionar una carpeta "
  29.        FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  30.        FBD.ShowNewFolderButton = True
  31.        If FBD.ShowDialog = Windows.Forms.DialogResult.OK Then : My.Settings.Folder = FBD.SelectedPath : LoadFolder(My.Settings.Folder) : End If
  32.        FBD.Dispose()
  33.    End Sub
  34.  
  35.    Private Sub LoadFolder(ByVal Folder As String)
  36.        Try
  37.            Listita.Items.Clear()
  38.            Dim Files As Array = IO.Directory.GetFiles(Folder, "*")
  39.            Dim TotalRoms As Int32 = Files.Length
  40.            For Each File In Files
  41.                Dim File_Info As New IO.FileInfo(File)
  42.                Listita.Items.Add(File_Info.Name)
  43.            Next
  44.            Label1.Text = "Roms encontrados (" & TotalRoms & ")"
  45.        Catch ex As Exception : MsgBox(ex.Message)
  46.        End Try
  47.    End Sub
  48.  
  49.    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  50.        MessageBox.Show(My.Settings.Folder, "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
  51.    End Sub
  52.  
  53. End Class

Saludos





EDITO:

Edu me recomiendas que me quite el NET 2.0 y 3.5?  ;-)

¿Como que quitartelos?

No te los tienes que quitar ni desinstalar ni nada, pero no debes hacer un proyecto en FW2.0 porqué está obsoleto, y tiene muy pocos métodos,
los debes hacer en FW3.X o FW4.X, yo hago aplicaciones en FW3.5 cuando puedo, pero prefiero usar FW4.0 por que véo methods más útiles que en FW3.5 no están, y por compatibilidad con algunos controles de terceros que uso que en FW3.X no corren.

Sincéramente depende de tus necesidades y de cúan compatible quieres que séa la APP para el público... casi todos los PC's llevan incorporados el FrameWork 3.X así que si haces el proyecto en FW4.5 muchos pc's necesitarán descargar el FW4.5 para correr tu APP.

saludos


Título: Re: Como usar FolderBrowserDialog
Publicado por: z3nth10n en 27 Enero 2013, 11:19 am
Casi todos los PC's llevan incorporados el FrameWork 3.X así que si haces el proyecto en FW4.5 muchos pc's necesitarán descargar el FW4.5 para correr tu APP.

Lo suponia gracias por decirmelo, ahora te comento a ver si fusca xD



Titirititititiri!!! Si que funca :))))) el caso que lol, no se si lo hubiese puesto desde un princpio como yo creia iba a funcionar era como un presentimiento.  :xD



Ahora vamos a hacer lo de las descargas.  ;-)



Pero por cierto, el codigo ese:

Código
  1. If My.Settings.Folder IsNot Nothing Then LoadFolder(My.Settings.Folder) ' Aquí cargas el último directorio que se cargó al salir de la aplicación

Como hago para borrarlo porque no quiero que se me quede esa direccion xD


Título: Re: Como usar FolderBrowserDialog
Publicado por: Eleкtro en 27 Enero 2013, 11:40 am
Como hago para borrarlo porque no quiero que se me quede esa direccion xD

Borrar el que.

Código:
my.settings.folder = nothing


Título: Re: Como usar FolderBrowserDialog
Publicado por: $Edu$ en 27 Enero 2013, 14:41 pm
Tal vez me falto declararlo si, no vi, pero con ver lo que intente hacer se tenia que dar cuenta, eso de usar Settings no era ni necesario.