|
811
|
Programación / .NET (C#, VB.NET, ASP) / Los controles de la class principal no se actualizan con delegados... :-/
|
en: 20 Diciembre 2012, 14:05 pm
|
Es la primera vez que pruebo a hacer esto y no se que error estoy comentiendo... Por un lado tengo la class principal (Form1) Por otro lado tengo una class para un backgroundworker Al usar delegados desde la segunda class para modificar la propiedad de un control de la class principal no sucede nada, la propiedad se modifica pero el control no se actualiza visualmente hablando en el form... es decir, ni el label ni la progressbar cambian de estado class principal.vb :Public Randomize_thread As New Randomize_thread_class ... Randomize_thread.StartBackgroundTask() ...
class del backgroundworker.vb : Imports PlayLists.Form1 ... Public WithEvents Randomize_thread As New BackgroundWorker Public Sub InvokeControl(Of T As Control)(ByVal Control As T, ByVal Action As Action(Of T)) If Control.InvokeRequired Then Control.Invoke(New Action(Of T, Action(Of T))(AddressOf InvokeControl), New Object() {Control, Action}) Else Action(Control) End If End Sub ... Public Sub Randomize_thread_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles Randomize_thread.DoWork Dim lines = File. ReadAllLines(PlayLists. Form1. Temp_file) Dim nLines = lines.Count Dim randomNumbers = RandomList(nLines) Dim tmpFile = Path.GetTempFileName() InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Visible = True) InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Maximum += nLines) Using sw = New StreamWriter(tmpFile, False, Encoding.UTF8) For i = 0 To nLines - 1 sw.WriteLine(lines(randomNumbers(i))) InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Value = i) InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Text = "Randomizing " + i.ToString() + " of " + (nLines - 1).ToString() + " files.") ' InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Refresh()) ' InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Refresh()) Next End Using InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Text = "All files launched") End Sub
|
|
|
812
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Diferencias entre compilar un control para FW2.0 o para FW4.x
|
en: 20 Diciembre 2012, 07:18 am
|
¿Que diferencias hay entre compilar un control para FW2.0 y FW4.x?, es decir, modificar la versión en las propiedades del proyecto del control... ¿Si lo compilo para FW4.x será más optimizado/liviano el control en los proyectos que usen FW4.x?
¿En que FW es aconsejable compilarlo? (Porfavor dar una razón de peso que no séa "FW3.X es el más instalado en PC's standard", busco eficacia)
Gracias por leer!
|
|
|
813
|
Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) Crear un FileLink en un richtextbox, y un evento...
|
en: 20 Diciembre 2012, 02:51 am
|
He buscado información sobre esto y siempre encuentro la misma respuesta , que no me sirve o no sé utilizarla XD. 1. - Tengo un richtextbox donde se agregan nombres de archivos, y quiero que al pulsar en cada nombre, se abra la carpeta (no el archivo) del archivo seleccionado, he pensado que para esto sería necesario crear un filelink, pero... no me funciona: 2. - Otro problema que tengo es que necesito desactivar los hyperlinks que se acoplan al nombre del archivo ( www.newpct.com) y quizás no sé si eso me está impidiendo crear correctamente los filelink... 3. - Y otra cosa que me gustaría hacer es, un evento para que al pulsar click DERECHO sobre el filelink aparezca un contextmenu, lo del contextmenu se hacerlo, lo del evento NO xD El código lo tengo así: ... AppendText(results_box, Color. White, ControlChars. Quote & "file://" & File. FullName. ToString() & ControlChars. Quote & vbNewLine ) ...
Y esto es un ejemplo del primer y el segundo problema mencionados: PD: La propiedad de detect urls la tengo activada
|
|
|
814
|
Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) ¿Como renombrar un archivo o carpeta con el mismo nombre?
|
en: 19 Diciembre 2012, 19:31 pm
|
Esto dará una excepción, porque el nombre es "el mismo" solo que con las minus/mayus cambiadas... (Vaya estúpida excepción!) My.Computer.FileSystem.RenameFile("C:\tEsT.txt", "test.txt") My.Computer.FileSystem.RenameDirectory("C:\OldDirectory", "OldDIRECTORY")
Para evitarlo conozco dos técnicas, La primera es renombrar el archivo añadiendole un caracter al final del nombre del archivo, y luego volverlo a renombrar al nombre original añadiendo el formato "ProperCase" que queramos. La segunda (Gracias Kub0x) es mover el archivo al mismo lugar con el "ProperCase", es decir: Archivo de origen: C:\tEST.TxTArchivo de destino: C:\Test.txtQuisiera saber si existe una forma que no implique tener que mover el archivo, y que no implique tener que añadirle caracteres al final del nombre original. Saludos!
|
|
|
815
|
Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) String.ToTitleCase (REAL TitleCase)
|
en: 19 Diciembre 2012, 06:36 am
|
¿Como puedo convertir un string a TitleCase? ya que TextInfo.ToTitleCase en realidad convierte a Word-Case Puedo hacerlo de manera rebuscada primero obteniendo y modificando el primer caracter de la variable a UpperCase y luego anexar el resto del string... ¿Pero no hay una manera más...nativa?
|
|
|
817
|
Programación / .NET (C#, VB.NET, ASP) / XmlDocument.LoadXml ¿Porque no me funciona?
|
en: 18 Diciembre 2012, 20:43 pm
|
- ¿Porque no me funciona? - ¿Y se puede cargar un archivo xml local sin setearlo en un string? Imports System.Xml Imports System.Xml.Serialization Imports System.IO Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim rawXML As String = _ "<Company>" & _ " <Employee>" & _ " <name>John</name>" & _ " <Id>1</Id>" & _ " <email>John@xxxxxx.com</email>" & _ " </employee>" & _ " <employee>" & _ " <name>Sue</name>" & _ " <Id>2</Id>" & _ " <email>Sue@xxxxxx.com</email>" & _ " </employee>" & _ "</Company>" Dim xmlDoc As New XmlDocument Dim employeeNodes As XmlNodeList Dim employeeNode As XmlNode Dim baseDataNodes As XmlNodeList Dim bFirstInRow As Boolean MsgBox("A") xmlDoc.LoadXml(rawXML) ' Este msgbox no se llega a ver MsgBox("B") employeeNodes = xmlDoc.GetElementsByTagName("name") For Each employeeNode In employeeNodes baseDataNodes = employeeNode.ChildNodes bFirstInRow = True For Each baseDataNode As XmlNode In baseDataNodes If (bFirstInRow) Then bFirstInRow = False Else MsgBox(", ") End If MsgBox(baseDataNode.Name & ": " & baseDataNode.InnerText) Next Next End Sub End Class
|
|
|
818
|
Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) ¿Que tipo de parámetro debo pasarle?
|
en: 18 Diciembre 2012, 15:11 pm
|
EDITO: Esto ya no necesito saberlo
Module InvokeRequiredHandler <System.Runtime.CompilerServices.Extension()> _ Public Sub HandleInvokeRequired(Of T As ISynchronizeInvoke)(ByVal controlToInvoke As T, ByVal actionToPerform As Action(Of T)) 'Check to see if the control's InvokeRequired property is true If controlToInvoke.InvokeRequired Then 'Use Invoke() to invoke your action controlToInvoke.Invoke(actionToPerform, New Object() {controlToInvoke}) Else 'Perform the action actionToPerform(controlToInvoke) End If End Sub End Module
Si por ejemplo, desde otro hilo quisiera modificar la propiedad "Text" de un textbox... ¿Como lo hago? HandleInvokeRequired(Textbox1, ¿?) No se que argumento se puede usar como "Action"
|
|
|
819
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Duda sobre los snippets
|
en: 17 Diciembre 2012, 19:01 pm
|
¿Alguien me puede explicar que significan y como se usan estos tags? <ID>aaaaaaaaa</ID> <ToolTip>sfsdf</ToolTip> <Default></Default> <Function>sdfsdf</Function>
Este es un snippet que he hecho (el code lo he copiado de internet), el snippet me funciona, se muestra en el menú de los snippets, pero digo yo que esos tags servirán para algo, no? <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> <Title> Determinar si un TextFile es Unicode </Title> <Author>Elektro H@cker</Author> <Description> Función que manda un valor boolean TRUE o FALSE </Description> <HelpUrl> </HelpUrl> <Shortcut> </Shortcut> </Header> <Snippet> <Declarations> <Literal Editable="true"> <ID>aaaaaaaaa</ID> <ToolTip>sfsdf</ToolTip> <Default> </Default> <Function>sdfsdf</Function> </Literal> </Declarations> <Code Language="vb"><![CDATA[ ' Dim file_codification As String = is_unicode("C:\File.txt") Private Function is_unicode(ByVal path As String) As Boolean Dim enc As System.Text.Encoding = Nothing Dim file As System.IO.FileStream = New System.IO.FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read) If file.CanSeek Then Dim bom As Byte() = New Byte(3) {} file.Read(bom, 0, 4) If (bom(0) = &HEF AndAlso bom(1) = &HBB AndAlso bom(2) = &HBF) OrElse (bom(0) = &HFF AndAlso bom(1) = &HFE) OrElse (bom(0) = &HFE AndAlso bom(1) = &HFF) OrElse (bom(0) = 0 AndAlso bom(1) = 0 AndAlso bom(2) = &HFE AndAlso bom(3) = &HFF) Then ' ucs-4 Return True Else Return False End If file.Seek(0, System.IO.SeekOrigin.Begin) Else Return False End If End Function ]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
|
|
820
|
Programación / .NET (C#, VB.NET, ASP) / ¿Recomendación de controles gratis?
|
en: 17 Diciembre 2012, 10:50 am
|
Hola, Busco controles gratis para WF y WPF que estén bien y valgan la pena usarlos (de la temática que séa, mientras séan útiles), me gustaría poder disponer de una gran cantidad para obtener mejor experiencia y programar de una manera más sencilla y fluida. ¿Que controles gratis me recomiendan? Dispongo sólamente de estos: AlphaGradientPanel.dll Blinkertextbox.dll DateAndTimeControls.dll ExtendedTextBox.dll gGlowBox.dll ImageControl.dll KISControls.dll Ookii.Dialogs.dll Ookii.Dialogs.Wpf.dll ProgBar.dll SPB.dll TransparentLabel.dll WindowsFormsToolkit.dll WPFAutoCompleteBox.dll Un saludo!
|
|
|
|
|
|
|