Autor
|
Tema: Como usar FolderBrowserDialog (Leído 24,701 veces)
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Hola pues bueno, quiero hacer algo así: 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í: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try ' Configuración del FolderBrowserDialog With FolderBrowserDialog1 .Reset() ' resetea ' leyenda .Description = " Seleccionar una carpeta " ' Path " Mis documentos " .SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) ' deshabilita el botón " crear nueva carpeta " .ShowNewFolderButton = False '.RootFolder = Environment.SpecialFolder.Desktop '.RootFolder = Environment.SpecialFolder.StartMenu Dim ret As DialogResult = .ShowDialog ' abre el diálogo ' si se presionó el botón aceptar ... If ret = Windows.Forms.DialogResult.OK Then Dim nFiles As ObjectModel.ReadOnlyCollection(Of String) nFiles = My.Computer.FileSystem.GetFiles(.SelectedPath) MsgBox("Total de archivos: " & CStr(nFiles.Count), _ MsgBoxStyle.Information) End If .Dispose() End With Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try End Sub
Si tengo alguna duda, pues pregunto.
Tengo una duda: If ret = Windows.Forms.DialogResult.OK Then Dim nFiles As ObjectModel.ReadOnlyCollection(Of String) nFiles = My.Computer.FileSystem.GetFiles(.SelectedPath) MsgBox("Total de archivos: " & CStr(nFiles.Count), _ MsgBoxStyle.Information) End If
Lo que quiero hacer es setear la direccion desde aqui, pero no tengo ni idea, porque nunca maneje este campo. Un saludo.
|
|
« Última modificación: 24 Enero 2013, 21:10 pm por Seazoux »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.888
|
Lo que quiero hacer es setear la direccion desde aqui, pero no tengo ni idea, porque nunca maneje este campo. 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
|
|
« Última modificación: 25 Enero 2013, 10:49 am por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
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 SubGracias 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.
|
|
« Última modificación: 25 Enero 2013, 16:38 pm por Seazoux »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.888
|
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: class
Public putavariable as string
form load sub putavariable = "putovalor" sub1() end sub
sub1 msgbox(putavariable) end sub
end class xD saludos.
|
|
« Última modificación: 25 Enero 2013, 16:52 pm por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
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: 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
|
|
« Última modificación: 25 Enero 2013, 18:17 pm por Seazoux »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.888
|
Y como lo puedo pasar de form a form? xD Me refiero a la putavariable xD
Public Shared puta_variable As String = "Elektro H@cker" MsgBox(Form1.puta_variable)
saludos
|
|
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Public Shared puta_variable As String = "Elektro H@cker" 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: 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
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.888
|
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... : my.settings.save()
form1 load sub msgbox(my.settings.MiOpcion) ' la última ruta guardada... 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
|
|
« Última modificación: 25 Enero 2013, 20:09 pm por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
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. 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: Dim Files As Array = IO. Directory. GetFiles(Form1. Folder, "*", IO. SearchOption. TopDirectoryOnly)
|
|
« Última modificación: 25 Enero 2013, 20:17 pm por Seazoux »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.888
|
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: 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? 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)
|
|
« Última modificación: 25 Enero 2013, 20:24 pm por EleKtro H@cker »
|
En línea
|
|
|
|
|
|