Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET]
Forum - C# / VB.NET - [VB.NET] "Scorrimento" di panel

Avatar
rocchissimo (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/05/2013

Segnala al moderatore
Postato alle 15:07
Mercoledì, 27/11/2013
Buongiorno a tutti, eccomi con un nuovo quesito XD

Io ho un form, all interno sono presenti 5 panel (normalmente nascosti) 1 button e 1 textbox.
Dentro ad ogni panel e' presente un label e un button.
Il panel sono "impilati" (vedere immagine allegata 1)

Quando un utente preme il pulsante presente nel form viene richiamata una sub che verifica il valore della variabile nsveglia: In base a questo definisce quale panel visualizzare e dove memorizzare il dati della textbox

Sub per mostrare i panel:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Mostra_pannello()
  2.         Dim nsveglia as Integer
  3.         Select Case nsveglia
  4.             Case 0
  5.                 Panel1.Visible = True
  6.                 Label1.Text = TextBox1.Text
  7.                 nsveglia = nsveglia + 1
  8.             Case 1
  9.                 Panel2.Visible = True
  10.                Label2.Text = TextBox1.Text
  11.                 nsveglia = nsveglia + 1
  12.             Case 2
  13.                 Panel3.Visible = True
  14.                 Label3.Text = TextBox1.Text
  15.                 nsveglia = nsveglia + 1
  16.             Case 3
  17.                 Panel4.Visible = True
  18.               Label4.Text = TextBox1.Text
  19.                 nsveglia = nsveglia + 1
  20.             Case 4
  21.                 Panel5.Visible = True
  22.               Label5.Text = TextBox1.Text
  23.                 nsveglia = nsveglia + 1
  24.             Case 5
  25.                
  26.                 Panel6.Visible = True
  27.                Label6.Text = TextBox1.Text
  28.                 nsveglia = nsveglia + 1
  29.             Case 6
  30.                 Panel7.Visible = True
  31.                Label7.Text = TextBox1.Text
  32.                 nsveglia = nsveglia + 1
  33.             Case 7
  34.                
  35.                 Panel8.Visible = True
  36.                Label8.Text = TextBox1.Text
  37.                 p8 = True
  38.                 nsveglia = nsveglia + 1
  39.         End Select



Cliccando sul pulsante presente in ogni panel visualizzato quest'ultimo dovrebbe essere "eliminato", cioè se sono visualizzati 3 panel e viene cliccato "elimina" sul primo (a partire dall'alto) il testo del label del primo panel dovrebbe essere rimpiazzato con quello del secondo, il testo del label del 2 panel viene rimpiazzato con il testo del label del terzo panel e il terzo pannello viene nascosto. (Vedere immagine allegata 2)

Dopo tutta questa spiegazione il mio problema e': come posso scrive una sub che mi faccia le operazioni descritte prima?

P.s: l' effetto che vorrei ottenere e' dello stesso tipo che si ottiene quando si elimina una sveglia dall'applicazione "orologio" dell'iphone, ma senza spostare (quindi senza modificare le cordinate) del panel. Chiaramente senza l'animazione dello scorrimento.

Ultima modifica effettuata da rocchissimo il 27/11/2013 alle 15:26


        ,           ,
       /             \
   ((__---,,,---__))
      (_) O O (_)_________
         \ _ /               |\
          o_o \   M S F   | \
               \   _____  |   *
                |||   WW|||
                |||          |||
PM Quote
Avatar
rocchissimo (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/05/2013

Segnala al moderatore
Postato alle 15:16
Mercoledì, 27/11/2013
Non riesco a capire se l'allegato è disponibile XD

In ogni caso la foto è disponibile qui http://vendita2patate.altervista.org/img_1_e_2.bmp


        ,           ,
       /             \
   ((__---,,,---__))
      (_) O O (_)_________
         \ _ /               |\
          o_o \   M S F   | \
               \   _____  |   *
                |||   WW|||
                |||          |||
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:52
Giovedì, 28/11/2013
Guarda il tuo atteggiamento di risoluzione mi sembra (scusa il termine) molto sciatto. Creare una classe che contempli i controlli che definiscono i tuoi panel ti renderebbe tutto il lavoro piu semplice, cosi potrai creare nuove istanze di tale classe per ogni panel, non avrai limitazioni date dal numero di panel, a questo punto potrai implementare una funzione statica che in caso di eliminazione di un istanza sposterà tutti i panel sottostanti di un unita verso l'alto.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
rocchissimo (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/05/2013

Segnala al moderatore
Postato alle 20:11
Giovedì, 28/11/2013
Ok, potresti farmi un esempio di come potrei impostare la classe perfavore?


        ,           ,
       /             \
   ((__---,,,---__))
      (_) O O (_)_________
         \ _ /               |\
          o_o \   M S F   | \
               \   _____  |   *
                |||   WW|||
                |||          |||
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 22:59
Giovedì, 28/11/2013
Guarda, a mio parere potresti ereditare dalla classe panel, cosi avresti già la tua base di panel, dopodiché gli inserisci i due controlli all'interno, in questo modo quando andrai a creare la classe ti ritroverai un panel già formattato. A quel punto ti basta definire la funzione che elimina un panel e ri formatta i panel restanti senza andare a toccare i controlli all'interno di essi.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote