Modifier la valeur d'une colonne dans un DataGridView

Résolu
Tazz - 25 avril 2021 à 23:40
Whismeril
Messages postés
17336
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
- 26 avril 2021 à 19:33
Bonjour,
Je suis en première année de BTS et je suis en train de programmer une interface graphique en c#. Dans mon programme j'ai 3 classes (Bateau, Port, Traversee) et il y'a une mission où je dois afficher le numéro de traversée, la date de départ, la durée, le port de départ et le port d'arrivée par défaut (qui sont créés en "dur" c'est-à-dire à la main). Puis à l'aide d'un menu déroulant (combobox) où les noms des bateaux sont affichés je dois affecter le bateau du menu déroulant à une traversée du tableau (en passant par une combobox avec les traversées).
Sauf que je n'arrive pas à : lorsque je valide l'affectation avec un boutton, seulement modifier la colonne bateau.

Si vous avez des pistes ou si vous avez besoin de plus d'information, n'hésitez pas ;)

3 réponses

Whismeril
Messages postés
17336
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
596
25 avril 2021 à 23:48
Bonsoir

dans ma boule de cristal, il me semble qu'il faut un demi à la ligne 1664.

Pour toute réponse sérieuse, il faut poster les morceaux de codes en rapport avec tout ça en utilisant la coloration syntaxique https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace M3_Oceane_v1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        List<Bateau> lesBateaux = new List<Bateau>();
        List<Port> lesPorts = new List<Port>();
        List<Traversee> lesTraversee = new List<Traversee>();


        private void Form1_Load(object sender, EventArgs e)
        {
            ajouterBateaux();
            ajouterBateauxtxb();
            ajouterPorts();
            creerLesObjetsTrajet();
            creerCollectionDéroulantNomBT();
            creerCollectionDéroulantNomTrajet();
        }

public void ajouterPorts()
        {
            Port unPort = new Port("Hoedic");
            lesPorts.Add(unPort);
            unPort = new Port("Houat");
            lesPorts.Add(unPort);
            unPort = new Port("Le Palais");
            lesPorts.Add(unPort);
            unPort = new Port("Lorient");
            lesPorts.Add(unPort);
            unPort = new Port("Port Tudy");
            lesPorts.Add(unPort);
            unPort = new Port("Quiberon");
            lesPorts.Add(unPort);
            unPort = new Port("Sayzon");
            lesPorts.Add(unPort);
        }

        public void creerLesObjetsTrajet()
        {
            Port unPortH = new Port("Hoedic");
            lesPorts.Add(unPortH);
            Port unPortHo = new Port("Houat");
            lesPorts.Add(unPortHo);
            Port unPortLP = new Port("Le Palais");
            lesPorts.Add(unPortLP);
            Port unPortL = new Port("Lorient");
            lesPorts.Add(unPortL);
            Port unPortPT = new Port("Port Tudy");
            lesPorts.Add(unPortPT);
            Port unPortQ = new Port("Quiberon");
            lesPorts.Add(unPortQ);
            Port unPortS = new Port("Sayzon");
            lesPorts.Add(unPortS);



            Traversee uneTraversee = new Traversee(1, DateTime.Today, 10000, unPortH, unPortHo);
            lesTraversee.Add(uneTraversee);
            uneTraversee = new Traversee(2, DateTime.Today, 20, unPortLP, unPortL);
            lesTraversee.Add(uneTraversee);
            uneTraversee = new Traversee(3, DateTime.Today, 20, unPortL, unPortPT);
            lesTraversee.Add(uneTraversee);
            uneTraversee = new Traversee(4, DateTime.Today, 20, unPortQ, unPortS);
            lesTraversee.Add(uneTraversee);

            foreach (Traversee t in lesTraversee)
            {
                dgvTraversee.Rows.Add(t.getNumerp(), t.getDateDepart(), t.getDuree(), t.getPortDepart().getPort(), t.getPortArrivee().getPort());
            }
        }
        public void creerCollectionDéroulantNomBT()
        {
            foreach (Bateau bateau in lesBateaux)
            {
                cbxb.Items.Add(bateau.getNom());
            }
        }



        public void creerCollectionDéroulantNomTrajet()
        {
            for (int i = 0; i < lesTraversee.Count; i++)
            {
                cbxt.Items.Add(lesTraversee.ElementAt(i).getNumerp());
            }
        }


        private void btnvaliderpt_Click_1(object sender, EventArgs e)
        {
            int indexB = cbxb.SelectedIndex;
            int indexT = cbxt.SelectedIndex;



            for (int i = 0; i < lesBateaux.Count(); i++)
            {
                if (lesBateaux.ElementAt(i).getNom() == cbxb.SelectedItem)
                {
                    textBoxNomBateauTra.Text = lesBateaux.ElementAt(i).getNom();



                }
            }



            cbxb.Text = "";
            cbxt.Text = "";
        }
    }
}


Sauf que j'aimerai que : lesBateaux.ElementAt(i).getNom(); soit égal à une colonne de mon DataGridView
0
Whismeril
Messages postés
17336
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
596
26 avril 2021 à 19:33
hum, je ne comprends toujours pas ta question.


0