Bottoni con evento sul precedente

lunedì 08 marzo 2004 - 20.23

sarto76 Profilo | Junior Member

ciao a tutti io ho il seguente problema:
ho 50 bottoni che corrispondono a 50 domande(ogni domanda ha 3 risposte possibili tramite checkbox).
quando io clicco sul bottone mi appare la domanda corrispondente.
Io però vorrei far sì che quando io rispondo ad una domanda e clicco su un altro bottone per aprirne un'altra , quella a cui ho risposto mi si colori di rosso. Come faccio a sapere, una volta che io clicco su un altro bottone, qual era quello da cui sono partito?
Spero di essere stato chiaro

Grazi mille
Max

Brainkiller Profilo | Guru

Puoi allegare una screenshot della WinForm che stai costruendo ?
I pulsanti li costruisci in fase di Desgin oppure a Runtime durante l'esecuzione dell'applicazione?
Le checkbox che compongono le risposte sono sempre le stesse e cambi di volta in volta dopo la pressione del pulsante le risposte ?

ciao
david

sarto76 Profilo | Junior Member

Per questo problema ho cambiato sistema, alla pressione di qualsiasi delle checkbox mi scatta l'evento che mi colora la casella corrispondente(diventa più facile)
le checkbox sono sempre le stesse, cambia il testo a seconda del testo della risposta(preso da DB).
Il problema generale però persiste...
Credo che il mio problema generale è quello di memorizzare i dati che l'utente selezione.
Ad esempio se sono alla dom 2 e seleziono la Checkbox 1, poi passo alla domanda 5, e in seguito ritorno alla 2, come faccio a far sì che la Checkbox 1 sia ancora selezionata??
Posso mettere questi valori in un dataset??
Se sì come faccio???

Grazie

Brainkiller Profilo | Guru

Certo che li puoi mettere in un Dataset però in questo caso forse mi sembra eccessivo.
Potresti costruire un Array con 50 posti in cui inserisci l'indice della checkbox selezionata come risposta:

int[] risposte =new int[50];

risposte[0]=1;
risposte[1]=2;
risposte[2]=2;

e così via.
Nel momento in cui tu premi il pulsante 0 per esempio, verifichi nell'array in posizione zero il valore che c'è (nel nostro caso c'è 1) e quindi sai che devi colorare la checkbox con indice 1. Mi sembra chiaro no? Allo stesso modo se lo desideri puoi usare il Dataset però forse non serve, basta un semplice array.

Potresti inizializzare tutte le posizione dell'array con il valore -1 così se premi un pulsante verificando il valore se trovi un -1 sai che stai visualizzando una domanda che non ha ancora ricevuto risposta. Eventuali personalizzazioni e comodità le scegli poi tu.

ciao
david

sarto76 Profilo | Junior Member

Grazie mille David, il mio problema però è che una domanda può avere 1 o 2 risposte esatte, quindi nell'array mi sa che non si può mettere un indice con 2 valori. Ma io con questo sistema potrei anche ricavare il testo delle risposte??
Grazie mille

sarto76 Profilo | Junior Member

Grazie mille per i suggerimenti... avrei ancora un dubbio...
Mi sono informato anche sui files XML, conviene di più utilizzare una matrice o questi files?

In effetti io vorrei che quando si cambiano le domande e si ritorna siano memorizzate le risposte date in precedenza. Vi sarà poi un pulsante per terminare ed a questo punto i dati (su file XML o matrice)devono andare in BD.
Ho le idee molto confuse se poteste darmi dei suggerimenti ve ne sarei grato.

Ciao Max

sarto76 Profilo | Junior Member

Grazie mille dei suggerimenti, ho optato per la soluzione array multidimensionale, nella prima riga ho il numero delle domande, nella seconda, terza e quarta i campi per le eventuali risposte... funziona benissimo.


Adesso però io vorrei far sì che quando clicco una risposta su una domanda(quindi quando una delle risposte per quella domanda nel mio array sia diversa da 0), il pulsante corrispondente al no della domanda si colori di grigio.
Nel mio post del 9 marzo avevo trovato una soluzione dicendo che quando una delle 3 checkbox fosse stato salezionata il colore del bottone doveva cambiare. Adesso però, avendo i dati nell'array, io posso ritrovarmi a passare su una domanda dove sono già presenti 3 risposte, se ne tolgo una mi si toglie il colore dal bottone, però ci sono ancora risposte selezionate. Adesso ho provato così:


I miei bottoni corrispondenti al numdom si chiamano B1 (domanda1), B2,...

Ho creato questa funzione:

public void segna_domanda_risposta(int no_dom)
{
Button b=new Button();
string domanda=no_dom.ToString();
b.Name="B"+domanda;
if((matrice[no_dom,1]==1)||(matrice[no_dom,2]==1)||(matrice[no_dom,3]==1))
{

b.BackColor=Color.Gray;
}


}
Ho provato questa soluzione ma non va... volevo far sì che questo bottone prendesse il valore del bottone che volevo colorare... ma sarebbe stato troppo bello...
Devo per forza passare il bottone alla funzione?? Però se passassi il bottone, mi dovrebbe prendere il valore del precedente, non del bottone stesso, perchè io voglio che colori il bottone da cui provengo...
Devo mettere il tutto nell'array???

Se potete darmi una mano ve ne sarei grato.

Ciao Max
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5