C# Tableau de combobox

Résolu
micka2411 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
micka2411 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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!
A voir également:

5 réponses

Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
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
Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
Merci pour cette aide!
Par contre, je ne comprends pas vraiment cette ligne:

"Personne maNouvellePersonne = (Personne)listBox1.SelectedItem;"
0
Utilisateur anonyme
 
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 > Utilisateur anonyme
 
Ah d'accord merci beaucoup de ton aide!!!
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
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