копирование DataGridView из одной формы в другую - PullRequest
0 голосов
/ 26 февраля 2020

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

this.Hide();
Form frm35 = new Form35(dataGridView1.DataSource);
frm35.ShowDialog();
this.Close();

, а во второй:

 public partial class Form35 : Form
{
    public Form35(object dataSource)
    {
        InitializeComponent();

    dataGridView1.DataSource = dataSource;


    }

    private void Form35_Load(object sender, EventArgs e)
    {

        dataGridView1.Refresh();

    }

}

, однако представление данных во второй форме (форма 35) все еще пусто спасибо за помощь.

1 Ответ

0 голосов
/ 26 февраля 2020

Ваш код будет работать нормально, если вы откроете вторую форму после привязки сетки первой формы к источнику данных. Проверьте следующий код для ссылки:

form1.cs

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

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable table = new DataTable();
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        table.Columns.Add("Date", typeof(DateTime));

        // Step 3: here we add 5 rows.
        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

        dataGridView1.DataSource = table;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form frm35 = new Form2(dataGridView1.DataSource);
        frm35.ShowDialog();
        this.Close();
    }

Form2.cs

public partial class Form2 : Form
{
    public Form2(object dataSource)
    {
        InitializeComponent();
        dataGridView1.DataSource = dataSource;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        dataGridView1.Refresh();
    }
}

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...