Как передать значения в DataGridView в другой форме - PullRequest
0 голосов
/ 23 июня 2019

Я создаю приложение для покупок, для которого мне нужно перенести выбранные товары (с помощью кнопки «Добавить в корзину») в DataGridView в другой форме, чтобы в нем могли отображаться все купленные мной товары. Для этого я разработал глобальную функцию во второй форме, чтобы при каждом нажатии кнопки «добавить в корзину» в моей первой форме значения добавлялись в DataGridView во второй форме. Но код пока ничего не показывает в DataGridView.

Form1:

public partial class CLOTHES : Form
{
    public static int cost = 0;
    public static string name = "";
    public static string size = "";
    public static string NAME = "";
    public static string SIZE = "";
    public static int total = 0;

    public CLOTHES()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            if (comboBox1.SelectedIndex == 0)
            {
                SIZE = "small";
                label1.Text = "T-SHIRT";
                cost = 300;
            }
            else if (comboBox1.SelectedIndex == 1)
            {
                SIZE = "MEDIUM";
                label1.Text = "T-SHIRT";
                cost = 400;
            }
            else if (comboBox1.SelectedIndex == 2)
            {
                SIZE = "LARGE";
                label1.Text = "T-SHIRT";
                cost = 500;
            }

            name = label1.Text;
            size = comboBox1.SelectedIndex.ToString();
            cart.populatedatagridview(name, size, cost);
            nextform(cost, size, name);
        }
    }

    void nextform(int cost, string size, string name)
    {
        total = cost;
        NAME = name;
        size = SIZE;
        MessageBox.Show("total " + total);
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.Hide();
        cart f5 = new cart();
        f5.ShowDialog();
    }
}

Form2:

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

    public static void populatedatagridview(string name, string size, int total)
    {
        cart cs = new cart();

        string[] row = { "" + name, "" + size, "" + total };
        cs.dataGridView1.Rows.Add(row);
    }
}

1 Ответ

0 голосов
/ 23 июня 2019

См. Обновление кода ниже, просто сохраните вашу корзину в переменной и перейдите к функции form2, чтобы связать ваши данные с gridview перед отображением form2

Form1:

public partial class CLOTHES : Form
{
    public static int cost = 0;
    public static string name = "";
    public static string size = "";
    public static string NAME = "";
    public static string SIZE = "";
    public static int total = 0;

    List<string[]> data = new List<string[]>();

    public CLOTHES()
    {
        InitializeComponent();
    }


    private void button1_Click(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            if (comboBox1.SelectedIndex == 0)
            {
                SIZE = "small";
                label1.Text = "T-SHIRT";
                cost = 300;
            }
            else if (comboBox1.SelectedIndex == 1)
            {
                SIZE = "MEDIUM";
                label1.Text = "T-SHIRT";
                cost = 400;
            }
            else if (comboBox1.SelectedIndex == 2)
            {
                SIZE = "LARGE";
                label1.Text = "T-SHIRT";
                cost = 500;
            }

            name = label1.Text;
            size = comboBox1.SelectedIndex.ToString();               
            nextform(cost, size, name);
            string[] row = { "" + name, "" + size, "" + total };
            data.Add(row);

        }
    }

    void nextform(int cost, string size, string name)
    {
        total = cost;
        NAME = name;
        size = SIZE;
        MessageBox.Show("total " + total);
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.Hide();
        cart f5 = new cart();
        f5.populatedatagridview(data);
        f5.ShowDialog();
    }

}

Form2:

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

    public void populatedatagridview(List<string[]> data)
    {

        foreach (var item in data)
        {
            dataGridView1.Rows.Add(item);
        }


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