C# Tableau de combobox

Résolu/Fermé
micka2411 Messages postés 10 Date d'inscription dimanche 3 août 2014 Statut Membre Dernière intervention 14 août 2014 - Modifié par micka2411 le 3/08/2014 à 14:58
micka2411 Messages postés 10 Date d'inscription dimanche 3 août 2014 Statut Membre Dernière intervention 14 août 2014 - 14 août 2014 à 16:34
Bonjour à tous,

Je développe actuellement une application qui doit gérer un planning semaine de trois équipes en fonction de la disponibilités des personnes. N'importe qui peut être dans n'importe quelle équipe, d'un créneau horaire à l'autre.

La personne responsable de créer ce planning rentre les disponibilités de chacun puis accédera à une sorte de tableau de combobox, mais une personne ne peut pas être dans plusieurs équipes, son nom doit donc être retiré de la liste quand il est rentré dans une équipe.
Et c'est la mon problème, la première partie est faite et fonctionne(l'enregistrement des disponibilités de chacun) mais pour le reste, il ne manque que la suppression des personnes deja rentrées.
J'ai essayé un datagridView de combobox mais je ne peux pas sélectionner un nom puis ensuite le supprimer de la liste d'item de la combobox, ça génère une erreur.
Donc si vous avez une solution je suis preneur. Je n'utilise surement pas le bon outil.
C'est mon premier post donc j'espère que j'ai été assez clair et que vous m'avez compris.
Je joins le visuel actuel:


Merci d'avance!

5 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 août 2014 à 20:51
Bonjour, que pourquoi ne pas avoir une listBox ou ListView avec les personnes disponibles.
L'utilisateur glisse un personnel vers le créneau horaire et ensuite la liste des disponibles est mise à jour
0
micka2411 Messages postés 10 Date d'inscription dimanche 3 août 2014 Statut Membre Dernière intervention 14 août 2014
12 août 2014 à 12:32
Ah oui effectivement je n'y avais pas pensé! Merci de cette réponse!
Par contre pour ce qui est du glissement de donnée d'une listbox à l'autre, il va falloir que je cherche, je ne suis pas au point la dessus! :)
Merci pour cette piste!
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
13 août 2014 à 11:05
Bonjour un bout d'exemple, il faut que la propriété AllowDrop du Datagridview et de la Form soit True

       private void dataGridView1_DragDrop(object sender, DragEventArgs e)
        {
            Personne maNouvellePersonne = (Personne)listBox1.SelectedItem;
        }

        private void dataGridView1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }

        private void listBox1_MouseDown(object sender, MouseEventArgs e)
        {
            listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Move);
        }

0
micka2411 Messages postés 10 Date d'inscription dimanche 3 août 2014 Statut Membre Dernière intervention 14 août 2014
13 août 2014 à 13:45
Merci pour cette aide!
Par contre, je ne comprends pas vraiment cette ligne:

"Personne maNouvellePersonne = (Personne)listBox1.SelectedItem;"
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
14 août 2014 à 00:59
Bonsoir, comme tu parlais de personnel, j'ai utilisé pour mon test une classe Personne (nom prénom et date de naissance).
Pour récupérer la personne glissée, il faut se servir de selectedItem qui est de type object et donc caster en Personne.

--
0
Micka2411 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
14 août 2014 à 11:02
Ah d'accord merci beaucoup de ton aide!!!
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
14 août 2014 à 11:46
De rien, si ça répond à ton besoin, pense à mettre le sujet résolu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
micka2411 Messages postés 10 Date d'inscription dimanche 3 août 2014 Statut Membre Dernière intervention 14 août 2014
14 août 2014 à 16:34
Je te remercie pour cette aide, j'ai juste changer la fonction dragdrop du dgv et ça marche!
Mon code n'est peut etre pas le meilleur mais il marche donc si ça intéresse quelqu'un:
private void dataGridView1_DragDrop(object sender, DragEventArgs e)
        {
            try
            {
                if (e.Data.GetDataPresent(typeof(System.String)))
                {
                    Object item = (object)e.Data.GetData(typeof(System.String));

                    if (e.Effect == DragDropEffects.Copy ||
                        e.Effect == DragDropEffects.Move)
                    {
                        Point souris = tab.PointToClient(MousePosition);
                        int colonne = tab.HitTest(souris.X, souris.Y).ColumnIndex;
                        int ligne = tab.HitTest(souris.X, souris.Y).RowIndex;

                        dataGridView1.Rows[ligne].Cells[colonne].Value = item;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
private void dataGridView1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }

private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }

 private void listBox1_MouseDown(object sender, MouseEventArgs e)
        {
            listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Move);
        }
0