abboudi_ammar Ответов: 1

Отображение в datagridview


Привет, мой вопрос касается datagridview. Я создаю класс ctsContacts с этим исходным кодом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TestingListe
{
    class ctsContacts:lstContacts
    {
        private int _numero;
 
        public int Numero
        {
            get { return _numero; }
            set { _numero = value; }
        }
 
        private string _nom;
 
        public string Nom
        {
            get { return _nom; }
            set { _nom = value; }
        }
        private string _prenom;
 
        public string Prenom
        {
            get { return _prenom; }
            set { _prenom = value; }
        }
        private string _message;
 
        public string Message
        {
            get { return _message; }
            set { _message = value; }
        }
 
 
        public ctsContacts()
        {
 
        }
 
        public ctsContacts(int numero, string nom,string prenom,string message)
        {
            this.Numero = numero;
            this.Nom = nom;
            this.Prenom = prenom;
            this.Message = message;
        }
 
        public bool recherche(int num)
        {
            foreach (ctsContacts search in ct)
            {
                if (search.Numero == num)
                {
                    return false;
                }
 
            }
            return true;
 
        }
 
        public bool Ajouter(ctsContacts ctn)
        {
            if (this.recherche(ctn.Numero) == true)
            {
                ct.Add(ctn);
                return true;
            }
            return false;
        }
 
    }



Этот класс наследует другой абстрактный класс, содержащий список
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TestingListe
{
    class lstContacts
    {
        public static List<ctsContacts> ct = new List<ctsContacts>();
        public lstContacts()
        {
 
        }
 
    }



а потом в контактной форме и кнопке Добавить при этом написание исходного кода
private void btnajouter_Click(object sender, EventArgs e)
        {
            ctsContacts contact = new ctsContacts();
            contact.Numero = int.Parse(txtnumero.Text);
            contact.Nom = txtNom.Text;
            contact.Prenom = txtPrenom.Text;
            contact.Message = txtmesssage.Text;
 
            contact.Ajouter(contact);
 
            dgvcontacts.DataSource = null;
 
            dgvcontacts.DataSource = ctsContacts.ct;



проблема заключается в том, что на дисплее datagridview копируется заголовок справа.

дисплей

Что я уже пробовал:

я пытаюсь кодировать с помощью этого:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TestingListe
{
    public class ctsContact
    {
        private int _numero;
 
        public int Numero
        {
            get { return _numero; }
            set { _numero = value; }
        }
 
        private string _nom;
 
        public string Nom
        {
            get { return _nom; }
            set { _nom = value; }
        }
        private string _prenom;
 
        public string Prenom
        {
            get { return _prenom; }
            set { _prenom = value; }
        }
        private string _message;
 
        public string Message
        {
            get { return _message; }
            set { _message = value; }
        }
 
 
        public ctsContact()
        {
 
        }
 
        public ctsContact(int numero, string nom,string prenom,string message)
        {
            this.Numero = numero;
            this.Nom = nom;
            this.Prenom = prenom;
            this.Message = message;
        }
 
    }
    public static class ctsContacts
    {
        public static List<ctsContact> ct = new List<ctsContact>();
        public static bool recherche(int num)
        {
            foreach (ctsContact search in ct)
            {
                if (search.Numero == num)
                {
                    return false;
                }
 
            }
            return true;
 
        }
 
        public static bool Ajouter(ctsContact ctn)
        {
            if (recherche(ctn.Numero) == true)
            {
                ct.Add(ctn);
                return true;
            }
            return false;
        }
    }
}


и кнопка ажутер с этим:

private void btnajouter_Click(object sender, EventArgs e)
        {
            ctsContact contact = new ctsContact();
            contact.Numero = int.Parse(txtnumero.Text);
            contact.Nom = txtNom.Text;
            contact.Prenom = txtPrenom.Text;
            contact.Message = txtmesssage.Text;
 
            ctsContacts.Ajouter(contact);
 
            dgvcontacts.DataSource = null;
 
            dgvcontacts.DataSource = ctsContacts.ct;


но у меня та же проблема

[no name]

"мой вопрос", нет никакого вопроса нигде в вашем сообщении. Что это за вопрос?
"та же проблема", ни одна проблема не описана нигде в вашем постинге, так в чем же проблема?

Swinkaran

Похоже, мало что не так. Непонятно, чего вы добиваетесь.
А вы пробовали
dgvcontacts.Привязку();

Karthik_Mahalingam

его приложение windows form
Привязку(); применимо к веб-приложению

1 Ответов

Рейтинг:
1

gggustafson

Я воспроизвел ваш код (с незначительным переформатированием), и он выполняется правильно.

Обратите внимание, что "txtmesssage" - это неправильное написание "txtmessage". Поэтому возникает вопрос: "действительно ли этот код компилировался?"

Я думаю, что у вас есть некоторые серьезные проблемы с именованием переменных. Также объявления переменных формы:

private int _numero;

public int Numero
    {
    get     { return _numero;     }
    set     { _numero = value;     }
    }


следует ли, ИМО, заменить что-то вроде

public int Numero { get; set; }

Вы получаете значительное снижение LOC.

Тест булевая переменная, отвечающая за форму

если ( Решерш ( кор.Нумеро ) == истина )

следует заменить на

если ( Решерш ( кор.Нумеро ) )

Ниже приведен ваш код, переписанный, который работает. Существенных изменений в кодировке не произошло:

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace TestingListe
    {

    // *************************************************** class Form1
    
    public partial class Form1 : Form
        {
        
        // ***************************************************** Form1
        
        public Form1 ( )
            {
            InitializeComponent ( );
            }

        // ****************************************** btnajouter_Click
        
        private void btnajouter_Click ( object    sender, 
                                        EventArgs e )
            {
            Contact contact = new Contact ( );
            
            contact.Numero = int.Parse ( txtnumero.Text );
            contact.Nom = txtNom.Text;
            contact.Prenom = txtPrenom.Text;
//            contact.Message = txtmesssage.Text; // txtmesssage???
            contact.Message = txtmessage.Text; // 

            Contacts.Ajouter ( contact );

            dgvcontacts.DataSource = null;

            dgvcontacts.DataSource = Contacts.ct;
            }

        }  // class Form1

    // ************************************************* class Program
    
    static class Program
        {

        [STAThread]
        static void Main ( )
            {
            Application.EnableVisualStyles ( );
            Application.SetCompatibleTextRenderingDefault ( false );
            Application.Run ( new Form1 ( ) );
            }

        } // class Program

    // ************************************************* class Contact
    
    public class Contact
        {
        public int Numero { get; set; }
        public string Nom { get; set; }
        public string Prenom { get; set; }
        public string Message { get; set; }

        // *************************************************** Contact
        
        public Contact ( )
            {
 
            }
 
        // *************************************************** Contact
        
        public Contact ( int    numero, 
                         string nom,
                         string prenom,
                         string message )
            {
            
            this.Numero = numero;
            this.Nom = nom;
            this.Prenom = prenom;
            this.Message = message;
            }
 
        }
        
    // ************************************************ class Contacts
    
    public static class Contacts
        {
        public static List<contact> ct = new List<contact> ( );
        
        // ************************************************* recherche
        
        public static bool recherche ( int num )
            {
            
            foreach ( Contact search in ct )
                {
                if ( search.Numero == num )
                    {
                    return false;
                    }
 
                }
            return true;
 
            }
 
        // *************************************************** Ajouter
        
        public static bool Ajouter ( Contact ctn )
            {
            if ( recherche ( ctn.Numero ) == true )
                {
                ct.Add(ctn);
                return true;
                }
            return false;
            }
        
        } // class Contacts
        
    } // namespace TestingListe

</contact></contact>


Надеюсь, это поможет.