Hola ando buscando una forma corta de combinar (no sumar ni adicionar) todo el contenido de dos lisbox en un otro sin que haya duplicados en grupos de cuatro resultados esto es si hay por ejemplo entre los dos lisbox 12 numeros que se muestren grupos de cuatro esto seria 3 resultados de cuatro números cada uno
Gracias :)
Felices fiestas a todos
Luis
Buaaaaaaa ya nadie quiere este viejo :)
luis
Al final voy a acabar odiando los Listbox :silbar:
¿Que has intentado?
No entiendo muy bien lo que pretendes hacer (eso de combinar, pero no sumar ni adicionar?), te muestro la manera de concatenar dos listas de items en un tercer Listbox, añadiendo un "separador" entre cada lista (que si no me equivoco, ya las tienes agrupadas de 4 en 4).
Dim Items1 As List(Of String) = ListBox1.Items.Cast(Of String)().ToList
Items1.Add(" ")
Dim Items2 As List(Of String) = ListBox2.Items.Cast(Of String)().ToList
Items2.Add(" ")
Dim CombinedItems As List(Of String) = Items1.Concat(Items2).ToList
ListBox3.Items.AddRange(CombinedItems.ToArray)
Saludos
Cita de: ElektroZoider en 29 Diciembre 2013, 02:32 AM
Al final voy a acabar odiando los Listbox :silbar:
¿
Saludos
Bien la idea es que me muestre en un tercer lisbox los datos que tienen estos dos primeros y bueno seria agruparlos en un tercero pero estoy tratando de hacer funcionar tu codigo pero me da este error " se esperaba una declaracion "
Bien se que es declarar al principio y con
Dim Items1
Dim Items2
los declaro y si pasa, pero tambien me pide declarar el listbox3 y ai si quedo parado ;( he buscado pero no encuentro como declaralo
Gracias
Luis
Cita de: luis456 en 29 Diciembre 2013, 14:20 PMpero tambien me pide declarar el listbox3 y ai si quedo parado ;( he buscado pero no encuentro como declaralo
'¬¬Agrega un Listbox en la GUI y cámbiale el nombre por "
Listbox3"
Lo de arriba es un simple ejemplo con 3 listbox (listbox1, listbox2 y listbox3) que óbviamente deben existir en la GUI, puedes utilizar los nombres que quieras...
saludos
Ya funciona :) y estoy tratando de eliminar repetidos con:)
.Distinct().ToArray() ' Eliminar duplicados pero no va
Lo de ordenar ya se como se hace :)
Public Class Form1
Dim maximum As Short = 49
Dim x As Integer = 0
Dim Número As Double
Private TextBoxes As TextBox() = {Nothing}
Private Result1 As Int32(), Result2 As Int32()
Private _textBox As Object
Private Property ListBox1Count As Integer
Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.ControlBox = False ' Elimino todos los controles del formulario
End Sub
Private Property Calcular As Object
Private Property TextBox(ByVal TextBoxCount As Short) As Object
Get
Return _textBox
End Get
Set(ByVal value As Object)
_textBox = value
End Set
End Property
Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
' evitar letras
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsSeparator(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
ReadOnly Property Num1 As Int32
Get
Return CInt(TextBox1.Text)
End Get
End Property
ReadOnly Property Num2 As Int32
Get
Return CInt(TextBox2.Text)
End Get
End Property
Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _
.Distinct().ToArray ' Elimino duplicados
Result2 = {Num2 + 10, Num2 + 20, Num2 + 30} _
.Distinct().ToArray ' Elimino duplicad
Array.Sort(Result1) : Array.Sort(Result2) ' El número no está repetido:
Dim Results As IEnumerable(Of Integer) =
Result1 ' El número no está repetido.Concat(Result2)
For X As Integer = 0 To Results.Count - 1
Dim Items1 As List(Of String) = ListBox1.Items.Cast(Of String)().ToList
Items1.Add(" ")
Dim Items2 As List(Of String) = ListBox2.Items.Cast(Of String)().ToList
Items2.Add(" ")
Dim CombinedItems As List(Of String) = Items1.Concat(Items2).ToList
ListBox3.Items.AddRange(CombinedItems.ToArray)
Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any
Case False ' El número no está repetido en ninguna "linea"
' Así que colocamos el número en el Textbox
Try
ListBox1.Items.Add(CStr(Results(X)))
' TextBoxes(TextBoxCount).Text = CStr(Results(X))
Catch ex As Exception
Throw New Exception(ex.Message & ex.StackTrace)
End Try
End Select
Next X
' -------segunda
Dim Resultss As IEnumerable(Of Integer) =
Result2 ' .
For X As Integer = 0 To Resultss.Count - 1
Select Case Resultss.Where(Function(n) n = Resultss(X)).Skip(1).Any
Case False
Try
ListBox2.Items.Add(CStr(Resultss(X)))
Catch ex As Exception
Throw New Exception(ex.Message & ex.StackTrace)
End Try
End Select
Next X
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Luis