Buenas!.
Este control tiene un menú flotante (aunque creo que se le llama de otra forma) cuando hacemos clic derecho sobre el.
Tenemos tres opciones. Eliminar color, eliminar colores,
ordenar colores de forma descendente.
En el botón Mostrar Colores me muestra en consola el valor en decimal de cada color que se encuentra en la lista del ColorPalette.
Pero no entiendo el orden. ¿ Cómo se supone que ordena el array de colores ?.
Código:
Public Sub btnaddColor_Click()
ColorPalette1.Add(ColorChooser1.Value)
End
Public Sub btnMostrarColores_Click()
For j As Integer = 0 To ColorPalette1.Colors.Max
Print ColorPalette1.Colors[j]
Next
End
Public Sub Form_Open()
Dim icolores As Integer[] = Settings["Colores"]
ColorPalette1.Colors = If(IsNull(icolores), [&HFF0000, &H00FF00, &H0000FF], icolores)
End
Public Sub Form_Close()
Settings["Colores"] = ColorPalette1.Colors
End
Esta es la lista que me crea a la salida por la consola:
Cita:16711834
16711935
10551551
255
39679
65535
65421
65280
11009792
16776960
16760832
16746240
16734464
16711680
Ya veo, ordena, pero no es un orden natural. Pues es como lo hace por defecto.
Un array de enteros solo se puede ordenar ascendente o descendente, no es como el de cadenas que tiene método de comparación.
Aun así los números no tienen un orden muy adecuado. Parecen más cadenas que números
Creando otro formulario en el mismo ejemplo, los números se mostraron así:
Código:
Const NUMMAXIMOS As Integer = 10
Private numeros As New Integer[]
Private numerosca As New Integer[]
Private numeroscd As New Integer[]
Public Sub Form_Open()
Randomize
Me.Title = "Orden Ascendente y Descendente"
For j As Integer = 0 To NUMMAXIMOS - 1
numeros.Add(Rand(1, 10 ^ 8))
Next
numerosca = numeros.Copy().Sort(gb.Ascent)
numeroscd = numeros.Copy().Sort(gb.Descent)
With tblNumeros
.AutoResize = True
.Header = GridView.Both
.Columns.Count = 3
.Rows.Count = NUMMAXIMOS
.Font = Font["Noto Mono, 11"]
.Columns[0].Title = "Números"
.Columns[0].Expand = True
.Columns[0].Alignment = Align.Center
.Columns[1].Title = "Ascendente"
.Columns[1].Expand = True
.Columns[1].Alignment = Align.Center
.Columns[2].Title = "Descendente"
.Columns[2].Expand = True
.Columns[2].Alignment = Align.Center
End With
End
Public Sub tblNumeros_Data(Row As Integer, Column As Integer)
tblNumeros[Row, 0].Alignment = Align.Center
tblNumeros[Row, 0].Text = numeros[Row]
tblNumeros[Row, 1].Alignment = Align.Right
tblNumeros[Row, 1].Text = numerosca[Row]
tblNumeros[Row, 2].Alignment = Align.Right
tblNumeros[Row, 2].Text = numeroscd[Row]
End
Public Sub btnSalir_Click()
Me.Close
End
Saludos