IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Probl�me CheckListBox WinForm


Sujet :

VC++ .NET

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2018
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 1
    Par d�faut Probl�me CheckListBox WinForm
    Bonjour,

    Je d�veloppe actuellement une application c++/CLR de gestion de musiques avec une playlist int�gr�e.

    L'utilisateur doit s�lectionner une musique dans cette playlist mat�rialis�e par une CheckListBox.

    Mon probl�me est le suivant : lorsque l'utilisateur clique 1 fois sur un des items de la checklistbox, celui-ci est s�lectionn� et coch�. Mais je voudrais qu'il ne puisse y avoir qu'un seul item coch�, et que cet item coch� soit toujours l'item s�lectionn�.

    Je suis au courant de la m�thode qui consiste � parcourir les items et de tous les d�cocher puis re-cocher l'�lement s�lectionn�. Seulement je dispose �galement d'un bouton "descendre" et d'un bouton "monter" qui permettent de r�organiser la checklist. Mon code, ins�r� dans la fonction SelectedIndexChanged, fonctionne lors des clics sur l'item de la checklistbox, mais le programme s'interrompt avec le message d'erreur "index -1 n'existe pas" lors du clic sur un de ces boutons.

    Je joins ci dessous le code de mon projet .... Pourriez-vous m'�clairer ?

    Merci beaucoup

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    private: System::Void checkedListBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
    		int i;
    		int j = checkedListBox1->SelectedIndex;
    		for (i = 0;i < checkedListBox1->Items->Count;i++) {
    			checkedListBox1->SetItemCheckState(i, CheckState::Unchecked);
    		}
    		checkedListBox1->SetItemCheckState(j, CheckState::Checked);
    	}
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Void Form1::MoveDown(Object^  sender, System::EventArgs^  e) {
     
    		checkedListBox1->BeginUpdate();
    		int numberOfSelectedItems = checkedListBox1->SelectedItems->Count;
    		// when going down, instead of moving through the selected items from top to bottom
    		// we'll go from bottom to top, it's easier to handle this way.
    		for (int i = numberOfSelectedItems - 1; i >= 0; i--)
    		{
    			// only if it's not the last item
    			if (checkedListBox1->SelectedIndices[i] < checkedListBox1->Items->Count - 1)
    			{
    				// the index of the item that is currently below the selected item
    				int indexToInsertIn = checkedListBox1->SelectedIndices[i] + 2;
    				// insert DOWN the item that we want to move down
    				checkedListBox1->Items->Insert(indexToInsertIn, checkedListBox1->SelectedItems[i]);
    				// removing it from its old place
    				checkedListBox1->Items->RemoveAt(indexToInsertIn - 2);
    				// highlighting it in its new place
    				checkedListBox1->SelectedItem = checkedListBox1->Items[indexToInsertIn - 1];
    				checkedListBox1->SetItemCheckState((indexToInsertIn - 1), CheckState::Checked);
    			}
    		}
    		checkedListBox1->EndUpdate();
    	}

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Mais je voudrais qu'il ne puisse y avoir qu'un seul item coch�, et que cet item coch� soit toujours l'item s�lectionn�.
    C'est un peu � l'encontre de tout ce qu'une CheckListBox repr�sente. Si tu veux qu'un seul �l�ment soit s�lectionnable, pourquoi utiliser une CheckListBox plut�t qu'une ListBox ordinaire ou � la rigueur une ListView?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. VB 2008 probl�me checklistbox
    Par mlescaudron21 dans le forum VB.NET
    R�ponses: 3
    Dernier message: 04/01/2012, 09h50
  2. Probl�me designer winform
    Par l8dj971 dans le forum Windows Forms
    R�ponses: 12
    Dernier message: 06/10/2010, 20h02
  3. [DEBUTANT] Probl�me checklistbox
    Par erigoal dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 15/11/2008, 11h11
  4. [c#, WinForms]Probl�me de connexion � base de donn�es
    Par Filippo dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 21/05/2007, 09h47
  5. [C#.NET WINFORMS] Probl�me de .dll
    Par MrCyprom dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 22/09/2006, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo