Modifier la valeur d'une colonne dans un DataGridView [Résolu]

Signaler
-
Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
-
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

Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
546
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
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
Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
546
hum, je ne comprends toujours pas ta question.