elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32
281  Programación / .NET (C#, VB.NET, ASP) / Re: Personalizar colores entorno de desarrollo de VB.NET 2010 en: 12 Octubre 2015, 19:49 pm
Citar
Supongamos que no me equivoco y el theme visual oscuro no está integrado en VS2010
No, efectivamente no está integrado, está en VB2012


Citar

obvia solución (y también la más óptima) sería actualizar tu IDE, ¡qué ya es hora!
mmm, no se a que te refieres  :¬¬. Podrías decir, entorno de desarrollo integrado (IDE).No se como se actualiza. Ni siquiera sabía que se podía. Si doy a 'Buscar actualizaciones' me envía a Windows Update.


Citar

...O descarga este theme:

No se como se usa
Citar

2. Y en esta página puedes encontrar esquemas de colores para Visual Studio:

Solo cambia el editor pero no el entorno de vb.net


Solo queda probar de usar la extensión Visual Studio Color Theme Editor

Gracias
282  Programación / .NET (C#, VB.NET, ASP) / Personalizar colores entorno de desarrollo de VB.NET 2010 en: 12 Octubre 2015, 12:26 pm
Hola

Estoy intentando cambiar el color del resaltado de selección y las lenguetas que se ven de color amarillo  con efecto de botón convexo en el entorno de desarrollo de VB.NET2010. Como se puede ver en esta imagen (la lengueta en la que pone Start Page y en la selección de Simple Calculator):





Ya he mirado en Herramientas/Opciones/Entorno/Fuentes y Colores y ya harto de buscar he cambiado todo lo que fuera amarillo o similar, pero nada, sigue igual.

No me gusta el escritorio demasiado iluminado por lo que el tema de mi escritorio es oscuro y con letras blancas. Ocurre que como el resaltado es amarillo al cambiarse a letras blancas no se ve una porra de lo que dice.

Aunque no pueda cambiar el color del resaltado, al menos poder cambiar el color de la fuente.

Gracias
283  Programación / .NET (C#, VB.NET, ASP) / Re: Crear matriz de controles MenuStrip partiendo en modo diseño (Visual Basic 2013) en: 11 Octubre 2015, 23:38 pm
Hola Tazmania40

Está genial tu código. Muy buen aporte. Había visto ejemplos por ahí que usaban DropDownItems para crear los items con índices, pero los códigos estaba incompletos y no me funcionaban.

Igualmente en tu código  no has puesto la variable  MnuRepasoSuma de clase ToolStripMenuItem al que hace referencia aquí:

Código
  1. MnuRepasoSuma.DropDownItems.Add(Prueba(I))
  2.  


Además, ¿Qué ocurre si quiero añadir un separador. Esas líneas que hay en los menús para separar conceptos. ¿Cómo hago para crear submenus en los Items? También he despejado esa duda.


Experimentando un poco he conseguido hacerlo. He hecho este código a partir del que has facilitado para despejar esas dudas y que cualquiera puede hacer un copia y pega y probarlo, usarlo o mejorarlo.

Código
  1. Option Strict On
  2. Option Explicit On
  3. Public Class Form1
  4.  
  5.    Private mnuStrip1 As New MenuStrip()
  6.    Private mainToolStripMenuItem As New ToolStripMenuItem()
  7.    Private Item(3) As ToolStripMenuItem
  8.    Private SubItem1(3) As ToolStripMenuItem
  9.    Private Separator(0) As ToolStripSeparator
  10.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  11.  
  12.        '*****Crea la cabezera del menú  mnuStrip1 ********
  13.        Me.mainToolStripMenuItem.Text = "Archivo"
  14.        mnuStrip1.Items.AddRange(New ToolStripItem() {mainToolStripMenuItem}) 'Añade un submenú para añadir Items
  15.        Me.Controls.Add(mnuStrip1)
  16.        '**************************************************
  17.        '
  18.        For numItms As Integer = 0 To Item.Count - 1
  19.            Dim name As String = Nothing
  20.            Select Case numItms
  21.                Case 0 : name = "Abrir"
  22.                Case 1 : name = "Guardar"
  23.                Case 2 : name = "Recientes"
  24.                Case 3 : name = "Cerrar"
  25.                    'Crea un Separador encima del Item3
  26.                    Separator(0) = New ToolStripSeparator
  27.                    mainToolStripMenuItem.DropDownItems.Add(Separator(0)) 'Separador
  28.            End Select
  29.            Item(numItms) = New ToolStripMenuItem(name)
  30.            mainToolStripMenuItem.DropDownItems.Add(Item(numItms))
  31.  
  32.            'Añade subItems al Item 2
  33.            If numItms = 2 Then 'Añade subItems al Item 2 (Recientes)
  34.                For numSubItm As Integer = 0 To SubItem1.Count - 1
  35.                    Select Case numSubItm
  36.                        Case 0 : name = "File1"
  37.                        Case 1 : name = "File2"
  38.                        Case 2 : name = "File3"
  39.                        Case 3 : name = "File4"
  40.                    End Select
  41.                    SubItem1(numSubItm) = New ToolStripMenuItem(name) 'Crea SubItem1 para Item2
  42.                    Item(2).DropDownItems.Add(SubItem1(numSubItm)) 'Añade 'SubItem1
  43.                Next
  44.            End If
  45.        Next
  46.  
  47.        'Crea evento click para los Items
  48.        For I As Integer = 0 To Item.Count - 1
  49.            AddHandler Item(I).Click, AddressOf Item_Click
  50.        Next I
  51.        'Crea evento click para los Subitems
  52.        For I As Integer = 0 To SubItem1.Count - 1
  53.            AddHandler SubItem1(I).Click, AddressOf SubItem1_Click
  54.        Next I
  55.    End Sub
  56.    Private Sub Item_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  57.        'Obtiene el índice del Item seleccionado
  58.        Dim Index As Integer = Array.IndexOf(Item, sender)
  59.  
  60.        'Muestra un mensaje con el texto del Item
  61.        MessageBox.Show(Item(Index).Text)
  62.  
  63.        'Cierra la apliación si se hace click en el Item 3 de la colección
  64.        If Index = 3 Then End
  65.    End Sub
  66.    Private Sub SubItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  67.        'Obtiene el índice del Item seleccionado
  68.        Dim Index As Integer = Array.IndexOf(SubItem1, sender)
  69.  
  70.        'Muestra un mensaje con el texto del SubItem
  71.        MessageBox.Show(SubItem1(Index).Text)
  72.    End Sub
  73. End Class
  74.  

Como ves el menú 'Archivo' se crea en tiempo de ejecución. No hace falta añadir controles al formulario.

Mediante  "mnuStrip1.Items.AddRange(New ToolStripItem() {mainToolStripMenuItem})" se crea el menú para los Items y finalmente creamos el menú completo  (sin subitems) mediante  "Controls.Add(mnuStrip1)".

Depués hago lo que has hecho tú y añado el "submenu" con sus Items y su índice correspondiente, pero esta vez añadiendo un separador. La posición de cada menú dependerá del lugar que ocupe la línea de código en que se crea, como muetra el ejemplo.


Hoy mismo he conseguido hacer lo propio con un menú emergente. Supón que quieres hacer un menú emergente (contextMenu o PopupMenu en VB6) dentro de un control y quieres crear items con sus índices y crear además separadores y subítems para los items. Aquí dejo el código de ejemplo:



CREAR UN MENÚ EMERGENTE (contextmenu) DENTRO DE UN CONTROL


-Inserta un ListBox en el form. Este ejemplo usa  el evento ListBox1_MouseDown para mostrar el menú cuando se pulsa el botón derecho del ratón

Código
  1. Option Explicit On
  2. Option Strict On
  3. Public Class Form1
  4.    Dim Contextmenu1 As New ContextMenu()
  5.    Dim ContextItems1(3) As MenuItem
  6.    Dim SubItems1(3) As MenuItem
  7.  
  8.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9.  
  10.        For numCItm As Integer = 0 To ContextItems1.Count - 1
  11.            Dim name As String = Nothing
  12.            Select Case numCItm
  13.                Case 0 : name = "Item0"
  14.                Case 1 : name = "-"
  15.                Case 2 : name = "Item2"
  16.                Case 3 : name = "Item3"
  17.            End Select
  18.            ContextItems1(numCItm) = New MenuItem(name)
  19.            If numCItm = 2 Then
  20.                For numCSubItm As Integer = 0 To SubItems1.Count - 1
  21.                    Select Case numCSubItm
  22.                        Case 0 : name = "SubItem0"
  23.                        Case 1 : name = "SubItem1"
  24.                        Case 2 : name = "SubItem2"
  25.                        Case 3 : name = "SubItem3"
  26.                    End Select
  27.  
  28.                    'Añade SubItems al Item 2
  29.                    SubItems1(numCSubItm) = New MenuItem(name) 'Crea SubItemX del Item2
  30.                    ContextItems1(numCItm).MenuItems.Add(SubItems1(numCSubItm)) 'Añade el subItemX
  31.                    'Evento para los SubItems
  32.                    AddHandler ContextItems1(numCItm).MenuItems(numCSubItm).Click, AddressOf SubItems1_Click
  33.                Next
  34.            End If
  35.            'Añade los Items
  36.            Contextmenu1.MenuItems.Add(ContextItems1(numCItm))
  37.            'Evento de los Items
  38.            AddHandler ContextItems1(numCItm).Click, AddressOf ContextItems1_Click
  39.        Next
  40.    End Sub
  41.  
  42.    Private Sub ContextItems1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  43.        'Obtiene índice control seleccionado
  44.        Dim Index As Integer = Array.IndexOf(ContextItems1, sender)
  45.  
  46.        'Muestra el texto del Item en la barra de título
  47.        MessageBox.Show(ContextItems1(Index).Text)
  48.    End Sub
  49.    Private Sub SubItems1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  50.        'Obtiene índice control seleccionado
  51.        Dim Index As Integer = Array.IndexOf(SubItems1, sender)
  52.  
  53.        'Muestra el texto del SubItems en la barra de título
  54.        MessageBox.Show(SubItems1(Index).Text)
  55.    End Sub
  56.  
  57.    Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
  58.        If e.Button = MouseButtons.Right Then
  59.            Contextmenu1.Show(ListBox1, New System.Drawing.Point(e.Location.X, e.Location.Y))
  60.        End If
  61.    End Sub
  62. End Class
  63.  

  


284  Programación / .NET (C#, VB.NET, ASP) / Re: cadenas de caracteres Visual Basic en: 9 Octubre 2015, 15:22 pm
Hola.
A ver si esto le parece bien al profesor/a:


[CÓDIGO VB.NET CON FUNCIONES DE VB]

Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        Dim Pos As Integer = 0
  3.        Dim Palabra As String = Nothing
  4.        Dim Cadena As String = "Hola mundo ¿Cómo estás?"
  5.        Dim Contador As Integer
  6.        Do
  7.            Contador = Contador + 1
  8.            Pos = InStr(1, Cadena, " ", vbTextCompare) 'Busca la posición del primer " "
  9.            If Pos > 0 Then 'Pos > 0 Esto es así cuando se ha encontrado un espacio " "
  10.                Palabra = Mid(Cadena, 1, Pos - 1) 'Obtiene la palabra
  11.                Cadena = Replace(Cadena, Palabra & " ", "") 'Elimina de la cadena la palabra encontrada y el espacio " "
  12.            Else 'Ya no quedan espacios " "
  13.                Palabra = Cadena 'Mete en 'Palabra lo que queda en cadena tal cual
  14.            End If
  15.            ListBox1.Items.Add("Palabra" & Contador & ": " & Palabra)
  16.        Loop Until Pos = 0
  17.    End Sub
  18.  



[EL MISMO CÓDIGO CON FUNCIONES PROPIAS DE VB.NET]

Código
  1.  
  2.    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  3.        Dim Pos As Integer = 0
  4.        Dim Palabra As String = Nothing
  5.        Dim Cadena As String = "Hola mundo ¿Cómo estás?"
  6.        Dim Contador As Integer
  7.        Do
  8.            Contador = Contador + 1
  9.            Pos = Cadena.IndexOf(" ")
  10.            If Pos > -1 Then
  11.                Palabra = Cadena.Substring(0, Pos)
  12.                Cadena = Cadena.Replace(Palabra & " ", "")
  13.            Else
  14.                Palabra = Cadena
  15.            End If
  16.            ListBox1.Items.Add("Palabra" & Contador & ": " & Palabra)
  17.        Loop Until Pos = -1
  18.  
  19.    End Sub
  20.  
  21.  


[Y POS SI LAS MOSQUIS.... :¬¬ TAMBIÉN EN VB]
Código
  1. Private Sub Command1_Click()
  2.        Dim Pos As Integer
  3.        Dim Palabra As String
  4.        Dim Cadena As String
  5.        Dim Contador As Integer
  6.  
  7.        Cadena = "Hola mundo ¿Cómo estás?"
  8.  Do
  9.        Contador = Contador + 1
  10.        Pos = InStr(1, Cadena, " ", vbTextCompare)
  11.        If Pos > 0 Then
  12.        Palabra = Mid(Cadena, 1, Pos - 1)
  13.        Cadena = Replace(Cadena, Palabra & " ", "")
  14.        Else
  15.        Palabra = Cadena
  16.        End If
  17.        List1.AddItem "Palabra" & Contador & ":" & Palabra
  18.  Loop Until Pos = 0
  19. End Sub
  20.  
285  Programación / .NET (C#, VB.NET, ASP) / Re: cadenas de caracteres Visual Basic en: 8 Octubre 2015, 11:37 am
hola Lekim ok no hay problema, es que siempre ando con la cabeza para otros lados y no leo y ni me fijo en nada jajajaja

Saludos Flamer

Bueno, de todos modos no has puesto nada incompatible con VB.NET, ya que Split, UBound, o MsgBox, se puede seguir usando en .NET.  Tu forma de ponerlo iría también perfecto en .NET, solo que te has trabado con el teclado y has puesto tr(i) en lugar de matrix(i)  ;)
286  Programación / .NET (C#, VB.NET, ASP) / Re: cadenas de caracteres Visual Basic en: 8 Octubre 2015, 04:20 am
Aqui te dejo un code haber si te entiendo

Hola Flamer,

Si te fijas aquí el compi ha puesto un código para  VB.NET, luego supongo que busca VB.NET. A simple vista parece  de VB porque usa miembros de VB, pero es .NET

Si me permites lo paso .NET, de todos modos es exacto al que he puesto yo, solo que en lugar de usar el Listbox has puesto un MessageBox y está en VB.


Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.     Dim frase As String = "Hola Mundo Hacker Soy Flamer"
  3.        Dim matrix() As String = frase.Split(Convert.ToChar(Keys.Space))
  4.        Dim NuevaFrase As String = Nothing
  5.        For I as integer = 0 To matrix.Length - 1
  6.            MessageBox.Show(matrix(I))
  7.        Next
  8.    End Sub


Saludos
287  Programación / .NET (C#, VB.NET, ASP) / Re: cadenas de caracteres Visual Basic en: 8 Octubre 2015, 03:27 am
 No entiendo muy bien que es lo que quiere hacer. Además hay lo que parece un Array que no defines cambiar_palabra().

Ten en cuenta que al usar ListBox_separar.Items.Add se crea un nuevo Item en el ListBox  cada vez que añade un elemento y por eso se te muestra así:

Código:
Hola
Mundo
Como

Puedes usar una Variable string para añadir las palabras y luego meterlas en el ListBox:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        Dim oracion As String = "Hola Mundo Como estas?"  'Trim(TextBox_oracion.Text())
  5.        Dim i As Integer = 1
  6.        Dim posicion As Integer
  7.        Dim palabra As String
  8.        Dim NuevaFrase As String = Nothing
  9.        Do
  10.            posicion = InStr(i, oracion, Convert.ToChar(Keys.Space))
  11.            If posicion > 0 Then
  12.                palabra = Mid(oracion, i, posicion - i)
  13.                NuevaFrase += palabra
  14.                posicion += 1
  15.                i = posicion
  16.            End If
  17.        Loop Until posicion = 0
  18.        ListBox1.Items.Add(NuevaFrase)
  19.    End Sub
  20. End Class


Aunque tu código no parece estar bien ya que cuando se acaban los "" el bucle no puede continuar y se queda en: "HolaMundoComo"

Te recomiendo que uses un Array y la función Split. Creo que este es el código que buscas:

Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        Dim Cadena As String = "Hola Mundo Como estas?"
  3.        Dim Array() As String = Cadena.Split(Convert.ToChar(Keys.Space))
  4.        Dim NuevaCadena As String = Nothing
  5.        For I As Integer = 0 To Array.Count - 1
  6.            NuevaCadena += Array(I)
  7.        Next
  8.        ListBox1.Items.Add(NuevaCadena)
  9.    End Sub


De todos modos, he realizado varios códigos más, uno saca las palabras distintas a "" y vuelve a generar la frase (en btnNormal ) y el otro código hace lo mismo pero coloca las palabras en orden aleatorio (btnAleatorio).  Esta vez, he creado otra variable Lista, para meter cada palabra, para luego ordenarlas o desordenarlas, poner espacios o carácteres entre ellas, etc.


No añadas ningún control, ni botones, ni ListBox, tan solo crea un nuevo proyecto Windows Form y copia y pega este código. Luego ejecuta el programa.
Los controles se crean desde el Evento Load.

Código
  1. Option Explicit On
  2. Option Strict On
  3. Public Class Form1
  4.  
  5.    Dim lstLista1 As ListBox = New ListBox 'Nuevo ListBox
  6.    Dim lstLista2 As ListBox = New ListBox 'Nuevo ListBox
  7.    Dim btnNormal As Button = New Button 'Nuevo Button
  8.    Dim btnAleatorio As Button = New Button 'Nuevo Button
  9.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  10.        With Me
  11.            .Controls.Add(lstLista1)
  12.            .Controls.Add(lstLista2)
  13.            .Controls.Add(btnNormal)
  14.            .Controls.Add(btnAleatorio)
  15.            .Size = New System.Drawing.Size(445, 200)
  16.            .Text = "Demo"
  17.        End With
  18.  
  19.  
  20.        lstLista1.Location = New Point(10, 10)
  21.        lstLista1.Width = 200
  22.  
  23.        lstLista2.Location = New Point(lstLista1.Left + lstLista1.Width + 10, 10)
  24.        lstLista2.Width = 200
  25.  
  26.        With btnNormal
  27.            .Size = New System.Drawing.Size(150, 23)
  28.            .Location = New Point(CInt((lstLista1.Width / 2) - (btnNormal.Width / 2) + lstLista1.Left), lstLista1.Height + lstLista1.Top + 10)
  29.            .Text = "Frase Normal"
  30.        End With
  31.  
  32.        With btnAleatorio
  33.            .Size = New System.Drawing.Size(150, 23)
  34.            .Location = New Point(CInt((lstLista2.Width / 2) - (btnAleatorio.Width / 2) + lstLista2.Left), lstLista2.Height + lstLista2.Top + 10)
  35.            .Text = "Frase desordenada"
  36.        End With
  37.  
  38.        AddHandler btnNormal.Click, AddressOf btnNormal_Click
  39.        AddHandler btnAleatorio.Click, AddressOf btnAleatorio_Click
  40.    End Sub
  41.  
  42.    Private Sub btnNormal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  43.        Dim IndexItem As Integer = 0
  44.        Dim Cadena As String = "Hola    Mundo Como estas?" & ControlChars.CrLf & "Estoy bien"
  45.        Cadena = Cadena.Replace(ControlChars.CrLf, Convert.ToChar(Keys.Space))
  46.        Dim Array() As String = Cadena.Split(Convert.ToChar(Keys.Space))  'Crea un Item en el array por cada palabra de la Cadena {"Hola","","que","","tal"...}
  47.        Dim Lista As New List(Of String)
  48.  
  49.        For I As Integer = 0 To Array.Length - 1
  50.             Lista.Add(Array(I))
  51.        Next
  52.  
  53.        Dim NuevaCadena As String = Nothing 'String para la nueva cadena
  54.        For Each Palabra As String In Lista
  55.            NuevaCadena += Palabra & Convert.ToChar(Keys.Space)
  56.        Next
  57.  
  58.        lstLista1.Items.Clear()
  59.        lstLista1.Items.Add(DBNull.Value)
  60.        lstLista1.Items(IndexItem) = NuevaCadena
  61.    End Sub
  62.  
  63.    Private Sub btnAleatorio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  64.        Dim IndexItem As Integer = 0
  65.        Dim Cadena As String = "Hola Mundo    Como estas?" & ControlChars.CrLf & "Estoy bien"
  66.        Cadena = Cadena.Replace(ControlChars.CrLf, Convert.ToChar(Keys.Space))
  67.        Dim Array() As String = Cadena.Split(Convert.ToChar(Keys.Space))  'Crea un Item en el array por cada palabra de la Cadena {"Hola","","que","","tal"...}
  68.        Dim Lista As New List(Of String) 'Lista para las palabras
  69.  
  70.  
  71.        For I As Integer = 0 To Array.Length - 1 Then
  72.           Lista.Add(Array(I))
  73.        Next
  74.  
  75.  
  76.        Dim NumAleatorio As Integer
  77.        Dim Rand As New Random 'El equivalenta a Rnd() de VB (no necesita es uso Randomize())
  78.        Dim NuevaCadena As String = Nothing 'String para la nueva cadena
  79.        Do
  80.            NumAleatorio = Rand.Next(0, Lista.Count)
  81.            'Obtiene un número aleatorio entre 0 y el número de elementos de la lista
  82.            NuevaCadena += CStr(Lista(NumAleatorio).ToString & Convert.ToChar(Keys.Space))
  83.            'Elimina el elemento de de la lista con índice = NumAleatorio (para evitar repetir palabras)
  84.            Lista.RemoveAt(NumAleatorio)
  85.            My.Application.DoEvents()
  86.        Loop Until Lista.Count = 0
  87.  
  88.        lstLista2.Items.Clear()
  89.        lstLista2.Items.Add(DBNull.Value)
  90.        lstLista2.Items(IndexItem) = NuevaCadena
  91.    End Sub
  92.  
  93.    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
  94.        Me.StartPosition = FormStartPosition.CenterScreen
  95.    End Sub
  96. End Class
  97.  




Quiero comentar que en .NET aunque se pueden usar algunos miembros de Microsoft.VisualBasic, así como Split, IntStr, Mid, char,  etc. VB.Net tiene unos miembros y clases propias para realizar estas funciones.

Como exprogramadores de VB6 (yo a veces lo uso para según que cosas), nuestra mente, a la hora de procesar una idea y pasarla a código de programación le cuesta abandonar la lógica de VB, y aunque pasemos a VB.NET no podemos evitar darle ese toque VB. Mientras que los que comienzan directamente a programar a .NET, ven incluso absurdo, innecesario y rebuscado un código en .NET con la lógica VB.


Yo he leído PDFs y libros en el que se usa indistintamente elementos de VB como de .NET, pero hay gente a la que no le gusta. Incluso en MSDN muchas veces en sus ejemplos de código hay elementos de VB. Personalmente no veo ningún problema en usarlos, pero es bueno también saber lo nuevo en .NET porque en muchos casos se reduce notablemente el volumen de código. Ocurre igual con los que empezaron con C y se pasaron a C++ o C#.


Algunos cambios
Código:
--VB--> Ubound(Array)   --VB.NET--> Array.Count
--VB--> Char(código)     --VB.NET-->  convert.ToChar(código)
--VB--> Mid(Cadena, Start, Lenght)    --VB.NET--> Cadena.Substring(Start, Length)
--VB--> UCase(Cadena) --VB.NET-->  Cadena.ToUpper  

Puedes encontrar algunas equivalencias entre VB y VB.NET aquí.

http://en.wikibooks.org/wiki/Visual_Basic_.NET/Visual_Basic_6_to_.NET_Function_Equivalents
288  Programación / .NET (C#, VB.NET, ASP) / Re: Crear matriz de controles MenuStrip partiendo en modo diseño (Visual Basic 2013) en: 7 Octubre 2015, 01:56 am
Mis disculpas porque realmente no leí detenidamente tu pregunta  :-\

Vale, te refieres al MenuStrip. Y mira que está bien claro.

Bueno, parece ser que no se puede hacer tal y como se hace  por ejemplo con un Label, como he mostrado en el ejemplo.

Puedes hacer esto:
 

Código
  1. Public Class Form1
  2.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.  
  4.        Dim idMenu = "1001"
  5.        Dim Menu1 As New ToolStripMenuItem("Menu Item")
  6.  
  7.        Menu1.DropDownItems.Add("Item_1")
  8.        Menu1.DropDownItems.Add("Item_2")
  9.  
  10.        MenuStrip1.Items.Add(Menu1) 'Agrega el menú
  11.  
  12.        'crea eventos para Menu1
  13.        AddHandler Menu1.DropDownItemClicked, AddressOf Menu1_click
  14.  
  15.    End Sub
  16.  
  17.  
  18.    Private Sub Menu1_click(ByVal sender As Object, ByVal e As ToolStripItemClickedEventArgs)
  19.  
  20.        If e.ClickedItem.Text = "Item_1" Then Me.Text = "Item_1"
  21.        If e.ClickedItem.Text = "Item_2" Then Me.Text = "Item_2"
  22.  
  23.    End Sub
  24. End Class


Si prefieres trabajar con índices, se me ocurre hacer lo siguiente para el evento Click:

Código
  1.    Private Sub Menu1_click(ByVal sender As Object, ByVal e As ToolStripItemClickedEventArgs)
  2.        Dim IndexItem As Integer
  3.        Select Case e.ClickedItem.Text
  4.            Case "Item_1" : IndexItem = 0
  5.            Case "Item_2" : IndexItem = 1
  6.        End Select
  7.  
  8.  
  9.        If IndexItem = 0 Then Me.Text = "Item1"
  10.        If IndexItem = 1 Then Me.Text = "Item2"
  11.    End Sub
289  Programación / .NET (C#, VB.NET, ASP) / Re: Crear matriz de controles MenuStrip partiendo en modo diseño (Visual Basic 2013) en: 6 Octubre 2015, 22:39 pm
Hola
Básicamente una manera es esta y lo puedes poner en un evento o función:

Código
  1. Public Class Form1
  2. Dim LabelArray(6) As Label
  3.  
  4. Private sub Evento()
  5.        For Index As Integer = 0 To LabelArray.Length - 1
  6.            LabelArray(Index) = New Label
  7.            Me.Controls.Add(LabelArray(Index))
  8.        Next
  9.  
  10. End Sub
  11. End Class
  12.  




Ahora querrás que estén en un lugar u otro. Entonces debes modificar las propiedades. Además seguramente necesites usar eventos como Click o MouseEnter.

Aquí te dejo un ejemplo:
Código
  1. Option Explicit On
  2. Option Strict On
  3. Public Class Form1
  4.    Dim LabelArray(6) As Label
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Dim StartLabel As Point = New Point(10, 10)
  7.  
  8.  
  9.          For Index As Integer = 0 To LabelArray.Length - 1
  10.            LabelArray(Index) = New Label()
  11.            With LabelArray(Index)
  12.                .Text = "Label" & Index
  13.                .ForeColor = Color.Red
  14.                .Font = New Font("Arial", 10)
  15.                .BackColor = Color.Blue
  16.                .TextAlign = ContentAlignment.MiddleCenter
  17.                .Location = New Point(StartLabel.X, StartLabel.Y)
  18.            End With
  19.            Me.Controls.Add(LabelArray(Index)) 'Añade el control al Form
  20.            StartLabel.Y += 30 'Incrementa la posición Y, para que los labels queden uno debajo del otro
  21.        Next
  22.  
  23.         'Vincula   LabelArray_Click con el evento Click del control LabelArray
  24.        For I As Integer = 0 To LabelArray.Length - 1
  25.            AddHandler LabelArray(I).Click, AddressOf LabelArray_Click
  26.        Next
  27.    End Sub
  28.  
  29.    Private Sub LabelArray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  30.        'Obtiene el índice del control seleccionado
  31.        Dim Index As Integer = Array.IndexOf(LabelArray, sender)
  32.  
  33.        If Index.Equals(0) Then LabelArray(0).Text = "HOLA"
  34.    End Sub
  35. End Class


Añado que esto es en WindowsForms, en WPF, es algo diferente. Ahora, lo paso a  WPF




Aquí está lo mismo pero para WPF.

Código
  1. Option Explicit On
  2. Option Strict On
  3. Class MainWindow
  4.    Dim LabelArray(6) As Label
  5.    Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
  6.        Dim StartLabel As New Point(X:=50, Y:=50)
  7.        For Index As Integer = 0 To LabelArray.Length - 1
  8.            LabelArray(Index) = New Label()
  9.            With LabelArray(Index)
  10.                .Content = "Label" & Index  'Texto que muestra el Label
  11.                .Width = 100
  12.                .Height = 20
  13.                .Foreground = Brushes.Red 'Color del texto
  14.                .Background = Brushes.Blue 'Color del fondo
  15.                .FontFamily = New FontFamily("Arial")
  16.                .FontSize = 15
  17.                .Padding = New Thickness(25, 1, 0, 0) 'Colocación del texto dentro del label
  18.                .VerticalAlignment = Windows.VerticalAlignment.Top 'Colocación del label
  19.                .HorizontalAlignment = Windows.HorizontalAlignment.Left  'Colocación del label
  20.                .Margin = New Thickness(StartLabel.X, StartLabel.Y, 0, 0) 'Margen Izquierda, Arriba,  Derecha, Abajo
  21.            End With
  22.            Grid1.Children.Add(LabelArray(Index)) 'Añade el control a Grid1 (NOTA: El Grid debe ser nombrado para poder establecer esta propiedad)
  23.            StartLabel.Y += 30
  24.        Next
  25.  
  26.        For I As Integer = 0 To LabelArray.Length - 1
  27.            AddHandler LabelArray(I).MouseLeftButtonDown, AddressOf LabelArray_MouseLeftButtonDown  'Vincula LabelArray con el evento LabelArray_Click y evento Click
  28.        Next
  29.    End Sub
  30.  
  31.    Private Sub LabelArray_MouseLeftButtonDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
  32.        Dim Index As Integer = Array.IndexOf(LabelArray, sender)
  33.        If Index.Equals(0) Then LabelArray(0).Content = CStr("Hola")
  34.    End Sub
  35. End Class

Por cierto, por si no lo sabes hay un foro para VB.NET, como supongo que sabrás esto es para Visual Basic X

http://foro.elhacker.net/net-b62.0/
290  Programación / .NET (C#, VB.NET, ASP) / Re: capturar exception en .net en: 5 Octubre 2015, 12:04 pm
Prueba esto:

Código
  1.        Try
  2.            Dim Resultado As IntPtr 'O Integer o lo que sea
  3.            ' Resultado = ...
  4.  
  5.  
  6.            Dim win32Err As Integer = System.Runtime.InteropServices.Marshal.GetLastWin32Error
  7.  
  8.  
  9.  
  10.            If Resultado = IntPtr.Zero Then  'Si Resultado  es un Stream o String debes poner  'If Resultado.Length = IntPtr.Zero Then'
  11.                Throw New System.ComponentModel.Win32Exception([error]:=win32Err)
  12.            Else
  13.  
  14.                'Variable/Control/Propiedad = Resultado
  15.  
  16.            End If
  17.  
  18.        Catch ex As Exception
  19.            Throw
  20.  
  21.        Finally
  22.            'Lo que quieras que haga al termintar...
  23.  
  24.        End Try


Pero si lo único que quieres es obtener el mensaje error entonces:

Código
  1.        Try
  2.  
  3.        Catch ex As Exception
  4.            MessageBox.Show(ex.Message)
  5.        End Try

ya que como dice Elektro devuelve un valor String
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines