calcena   04-08-2020, 19:12
#1
Buenas tardes a todos,
tengo un componente que es un ListBox con unos items y su correspondiente Tag[Id], bien quiero dada una acción dejar la selección que hay inicializada, que quiero decir con esto, que si el usuario ha seleccionado un item del listbox y se pulsa el botón LIMPIAR el listbox debe quedar sin elemento seleccionado.
Bien dicho esto, pensaba que con un ListBox1.Index = -1 podía realizar esta acción, cual es mi sorpresa cuando al ejecutar el programa me dice 'Fuera de los limites'

Alguna idea de como resetear el componente listbox, ¡ojo resetear solo la selección para se quede sin seleccionar ningún item! porque el tema .clear no es lo que estoy buscando como casuística.


Saludos
jguardon   04-08-2020, 19:42
#2
Si el combobox está vacío, ¿cómo es que queda algo seleccionado? 

En cualquier caso, para "deseleccionar" ítems, hay un método concreto:

https://gambaswiki.org/wiki/comp/gb.qt4/...nselectall

Eso debería funcionar.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
vuott   04-08-2020, 19:54
#3
(04-08-2020, 19:12)calcena escribió: Bien dicho esto, pensaba que con un ListBox1.Index = -1 podía realizar esta acción, cual es mi sorpresa cuando al ejecutar el programa me dice 'Fuera de los limites'
 
ListBox contiene los "ítem" en modo indexado, como un array.
...desde cuándo los array tienen valores de índice inferiores a cero? Sad

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
calcena   04-08-2020, 20:47
#4
Gracias
pues no habia contemplado el tema unselectall, vaya vista.
Por otra parte en .net el index -1 si que hace deseleccionar un control de este tipo, pensaba que podía hacer algo parecico.

Saludos
gambafeliz   04-08-2020, 21:10
#5
Hola, calcena

Prueba a ver si te sirve:

[code]

Saludos Smile
Última modificación: 04-08-2020, 21:37 por jguardon.
vuott   05-08-2020, 00:15
#6
(04-08-2020, 20:47)calcena escribió: Por otra parte en .net el index -1 si que hace deseleccionar un control de este tipo...

uhmmm... no conozco .net, ...pero aquel -1 a mi parece, se muestra como si fuera no un real numero de indice, sino un particular valor, para que el recurso - al que está asignado - sepa que debe realizar una acción (...deseleccionar un control). Dodgy
Última modificación: 05-08-2020, 00:20 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
kokodrilo   05-08-2020, 05:20
#7
no se si es el mismo tema pero yo con la ultima actualización de gambas el programa visorrv1960 me tira error al ejecutar listbox.clear

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
cogier   05-08-2020, 16:37
#8
¿Es esto lo que estás buscando? Ejecute el código en una aplicación GUI.

Código:
ListBox1 As ListBox
HBox1 As HBox
Label1 As Label
ButtonClean As Button
ButtonRestore As Button

Public Sub Form_Open()

  With Me
    .H = 448
    .W = 448
    .Arrangement = Arrange.Vertical
    .Padding = 5
  End With

  With ListBox1 = New ListBox(Me) As "ListBox1"
    .Expand = True
    .List = Dir(User.Home, "[^.]*", gb.Directory)
  End With

  HBox1 = New HBox(Me)
  HBox1.H = 28

  With ButtonRestore = New Button(HBox1) As "ButtonRestore"
    .W = 98
    .Text = "&Restore"
    .Picture = Picture["icon:/22/redo"]
  End With

  With Label1 = New Label(HBox1)
    .Alignment = Align.Center
    .Alignment = Align.Bottom
    .Expand = True
    .Font.Size = 7
    .Text = "Charlie Ogier Software 2020"
  End With

  With ButtonClean = New Button(HBox1) As "ButtonClean"
    .W = 98
    .Text = "&Clean"
    .Picture = Picture["icon:/22/clear"]
  End With

End

Public Sub ButtonClean_Click()

  Dim sArray As String[] = ListBox1.List

  If ListBox1.Index = -1 Then Return

  sArray.Extract(ListBox1.Index, 1)
  ListBox1.List = sArray

End

Public Sub ButtonRestore_Click()

  ListBox1.List = Dir(User.Home, "[^.]*", gb.Directory)

End
Última modificación: 05-08-2020, 16:39 por cogier.
calcena   06-08-2020, 15:04
#9
(05-08-2020, 00:15)vuott escribió:
(04-08-2020, 20:47)calcena escribió: Por otra parte en .net el index -1 si que hace deseleccionar un control de este tipo...

uhmmm... no conozco .net, ...pero aquel -1 a mi parece, se muestra como si fuera no un real numero de indice, sino un particular valor, para que el recurso - al que está asignado - sepa que debe realizar una acción (...deseleccionar un control). Dodgy


Tal como sería en .net: ListaEquiposListBox.SelectedIndex = -1;
Yo he hecho una mezcla de todo junto.
Gracias.
  
Usuarios navegando en este tema: 7 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.