Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
Modificare Checked in CheckedListBox
Ultimo Post 03 feb 2009 17.14 by Christian. 18 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi Risolto

Posts:69

--
01 feb 2009 16.25  
Temo d'essermi perso in una bolla di sapone...

Quando sono qua:
For i = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.GetItemChecked(i) = False Then
...
End If
Next

Al posto dei puntini pensavo di mettere:
CheckedListBox1.GetItemCheckState(i) = CheckState.Checked
ma non funziona, quindi che devo fare?


Un'altra cosa: c'è un'opzione per evitare di dover cliccare due volte sull'item per checkarlo? Attualmente una lo seleziona ed una lo checka.

Posts:69

--
01 feb 2009 16.42  
In alternativa si può ciclare tutti gli Item credo in modo più efficente così:
For Each NameItem As String in CheckedListBox.Items
...
Next

Rimango sempre col dubbio di come si Checkano gli Item da codice, ovviamente non al momento dell'aggiunta degli Item nella CheckedListBox, per quello si fa così:
CheckedListBox.Items.Add("123"), True)

Posts:662

--
01 feb 2009 18.33  
Rimango sempre col dubbio di come si Checkano gli Item da codice, ovviamente non al momento dell'aggiunta degli Item nella CheckedListBox, per quello si fa così:
CheckedListBox.Items.Add("123"), True)
Molto semplice:
For Each i As Integer In Me.CheckedListBox1.CheckedIndices
Me.CheckedListBox1.SetItemChecked(i, False)
Next
HTH Alberto.

Posts:69

--
01 feb 2009 22.47  

Posted By Alberto (DNW TEAM) on 01 feb 2009 07.33
Rimango sempre col dubbio di come si Checkano gli Item da codice, ovviamente non al momento dell'aggiunta degli Item nella CheckedListBox, per quello si fa così:
CheckedListBox.Items.Add("123"), True)
Molto semplice:
For Each i As Integer In Me.CheckedListBox1.CheckedIndices
Me.CheckedListBox1.SetItemChecked(i, False)
Next
HTH Alberto.


Forse mi sono spiegato male: non voglio uncheckare gli Items già checkati, ma checkare tutti gli Items (checkati o non checkati che siano).

Posts:662

--
01 feb 2009 23.34  
Forse mi sono spiegato male: non voglio uncheckare gli Items già checkati, ma checkare tutti gli Items (checkati o non checkati che siano).

Ancora + semplice:
For i As Integer = 0 To Me.CheckedListBox1.Items.Count - 1
Me.CheckedListBox1.SetItemChecked(i, True)
Next

Posts:69

--
01 feb 2009 23.52  

Posted By Alberto (Admin) on 02 feb 2009 12.34
Forse mi sono spiegato male: non voglio uncheckare gli Items già checkati, ma checkare tutti gli Items (checkati o non checkati che siano).

Ancora + semplice:
For i As Integer = 0 To Me.CheckedListBox1.Items.Count - 1
Me.CheckedListBox1.SetItemChecked(i, True)
Next


Ottimo grazie.

Posts:69

--
02 feb 2009 00.59  
Un'altra cosa, se io ho questi tre:
CheckedListBox1.Items.Add("Checkprova1", True)
CheckedListBox1.Items.Add("Checkprova2", True)
CheckedListBox1.Items.Add("Checkprova3", True)

e voglio uncheckare il secondo faccio così:
CheckedListBox1.SetItemChecked(1, False)

Ma se conosco solo il nome (Checkprova2) e non so se è primo, secondo o terzo, come faccio per uncheckarlo?

Posts:94

--
02 feb 2009 09.11  
Ciao in realtà gli oggetti della lista che inserichi sono delle stringhe, perciò con un ciclo indicizzato intercetti l'oggetto che ha il nome che cerchi a quel punto conosci anche l'indice e la procedura è identica alla prima... attenzione che se due oggetti hanno la stessa stringa questa è valida solo per la prima ugualianza.... in per ovviare a questo problema potresti scriverti una classe ad hoc dove ridefinisci il metodo ToString() e gestisi la cosa a livello di codice con una lista parallela a quella della CheckedListBox....

Posts:69

--
02 feb 2009 09.45 Risposta accettata  
No, due oggetti non hanno mai la stessa stringa, su quello non c'è problema.

Come faccio a conoscere l'indice una volta che trovo il nome? Ovvero cosa devo mettere al posto dei puntini?

For Each i As String In CheckedListBox1.Items
If i = "Checkprova2" Then
CheckedListBox1.SetItemChecked ( ... , False)
End If
Next

Posts:48

--
02 feb 2009 11.48  
Scusate se m'intrometto uscendo dall'argomento.
Qualcuno mi sa dire come mai, mi sta arrivando un fiume di link al forum in casella di posta?
Questo succede da ieri e non ho attivato alcuna spunta per ricevere.
Chiedo qui, dato che da qui sto ricevendo il 70% del fiume e non vedo come contattare l'amministratore

Lambert

Posts:69

--
02 feb 2009 11.53  
Succede anche a me.

Posts:662

--
02 feb 2009 12.00  
Chiedo qui, dato che da qui sto ricevendo il 70% del fiume e non vedo come contattare l'amministratore
Il problema si sta verificando dopo l'aggiornamento del modulo di gestione dei Forums. Lo abbiamo testato in locale per circa un mese e non dava nessun tipo di problema, ieri lo abbiamo messo su e ha generato questo errore inaspettato. Stiamo cercando di capire con l'assistenza (che si trova negli USA, quindi si devono ancora alzare da letto ) che tipo di problema può essere successo. Nel frattempo vi chiediamo cortesemente di pazientare ancora un po' scusandoci per l'accaduto.
Grazie.
.otNetWork Team:.

Posts:69

--
02 feb 2009 14.40  
Tornando IT, ho fatto delle prove per cercare di modificare in False un elemento della CheckedListBox (tutti True) di cui conosco solo il nome.
Ho provato con questo codice ma dà errore di modifica enumeratore:
Dim ii As Integer = 0
For Each i As String In CheckedListBox1.Items
If i = "Checkprova2" Then
CheckedListBox1.SetItemChecked(ii, False)
Else
ii += 1
End If
Next

Ho quindi provato del codice alternativo per aggirare il problema, ottengo il risultato voluto ma non mi sembra che sia granchè il procedimento:
Dim ii As Integer = 0
Dim iii As Integer
For Each i As String In CheckedListBox1.Items
If i = "Checkprova2" Then
iii = ii
Else
ii += 1
End If
Next
CheckedListBox1.SetItemChecked(iii, False)

Pareri? O c'è un metodo più elegante per ottenere il risultato?



Rinnovo anche la richiesta di sapere se qualcuno sa come fare per evitare di dover cliccare due volte su un elemento per checkarlo o uncheckarlo.

Posts:94

--
03 feb 2009 11.40  
Ciao, io pensavo più a questo codice:
perdonami ma non ricordo le sintassi VB e ti scrivo in C# forse qualche buon anima ti può aiutare nella conversione


Integer I =0;

for ( I =0; I< CheckedListBox1.Items.Count; I++)
{
if ( CheckedListBox1.Items[I] == "Checkprova2")
{
break;
}
}

CheckedListBox1.SetItemChecked(I,false);

in sostanza anziche iterare su tutte le stringe con il ciclo for each usi il più classico ciclo for a indice numerico per ricavare l'indice che ti interessa, a questo punto blocchi il ciclo per non sprecare iterazini. Con l'indice noto il gioco è fatto....

Posts:69

--
03 feb 2009 12.05  

Inserito da Netso su 03 feb 2009 12.40
Ciao, io pensavo più a questo codice:
perdonami ma non ricordo le sintassi VB e ti scrivo in C# forse qualche buon anima ti può aiutare nella conversione


Integer I =0;

for ( I =0; I< CheckedListBox1.Items.Count; I++)
{
if ( CheckedListBox1.Items[I] == "Checkprova2")
{
break;
}
}

CheckedListBox1.SetItemChecked(I,false);

in sostanza anziche iterare su tutte le stringe con il ciclo for each usi il più classico ciclo for a indice numerico per ricavare l'indice che ti interessa, a questo punto blocchi il ciclo per non sprecare iterazini. Con l'indice noto il gioco è fatto....


Il tuo codice in vb è così 8ho usato un convertitore):
Dim I As Integer = 0

For I = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.Items(I) = "Checkprova2" Then
Exit For
End If
Next

CheckedListBox1.SetItemChecked(I, False)


É molto simile al mio codice, solo che non si può usare se bisogna uncheckare più check (mi sono dimenticato di dirlo, colpa mia). In questo caso si può usare un Arraylist per elencare tutti gli Integer risultanti da un altro Arraylist che contiene gli String.
Grazie comunque per la tua risposta.

Se ci sono soluzioni migliori rimango a disposizione.

Posts:94

--
03 feb 2009 13.50  
Ho capito...

Forse la cosa si risolve in modo molto più semplice

CheckedListBox1.FindString(String) metodo che restituisce l'indice della stringa che cerchi... esiste anche in overload dove gli passi anche il valore di partenza dell'indice di ricerca... se non trova la stringa restituice -1

Posts:69

--
03 feb 2009 15.51  

Inserito da Netso su 03 feb 2009 14.50
Ho capito...

Forse la cosa si risolve in modo molto più semplice

CheckedListBox1.FindString(String) metodo che restituisce l'indice della stringa che cerchi... esiste anche in overload dove gli passi anche il valore di partenza dell'indice di ricerca... se non trova la stringa restituice -1


Eccellente, grazie mille.

Ho compattato il tutto così:
CheckedListBox1.SetItemChecked(CheckedListBox1.FindString("Checkprova2"), False)

Posts:94

--
03 feb 2009 17.06  
Sono contento di esserti stato d'aiuto....

Attenzione che non sono sicuro che il metodo SetItemChecked accetta come valore sull'indice -1, questo potrebbe sollevarti un'eccezione che basta gestire in:

Integer I = CheckedListBox1.FindString("Checkprova2");

if (I > -1 )
{
CheckedListBox1.SetItemChecked(I,false);
}

senza usare try catch che non è elegante per gestire queste situazioni

Posts:69

--
03 feb 2009 17.14  
Grazie, ma questo non è un problema perchè saranno inseriti per la ricerca solo String di cui sono sicuro che esistano i corrispondenti elementi nel CheckedListBox.
Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Introduzione a Windows Presentation Foundation (parte1)
La prima di una serie di traduzioni da articoli di MSDN o altre fonti che offrono un punto di partenza per iniziare a capire il WPF.
2007/07/29 | Autore: Patrizia Cosolo
Autenticazione ASP.NET
Come funziona la configurazione dell'autenticazione ASP.NET? Scopriamolo tramite alcuni test.
2007/08/09 | Autore: Rudy Azzan
Installer Utility - Utilizzare le Azioni Personalizzate
Come creare automaticamente il DataBase durante il processo di installazione
2007/08/14 | Autore: Alberto De luca
Ereditarietà applicata ai controlli
Creazione di una combobox che mostra immagini al posto del testo
2008/07/06 | Autore: Andrea Zingoni
Iniziare da zero con WPF (Parte 3)
Litigi, Divinità, Pennelli e Frigoriferi. (prima parte)
2007/11/22 | Autore: Sabrina Cosolo
Programmer Paster Addin per Expression Web 1 e 2
Implementare un Addin per Expression Web 1 e 2 che usa la libreria ProgrammerPaster
2009/02/26 | Autore: Rudy Azzan
Panoramica degli Eventi Pilotati
Come iniziare a capire com'è fatto WPF (parte 4)
2007/08/14 | Autore: Patrizia Cosolo
Lavorare con i Generic - Led Control
Creare un controllo che simula i moduli LED
2007/11/11 | Autore: Alberto De Luca
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.