0

Мне нужно чтобы по нажатию на кнопку продать данная строка переносилась в datagridview2,помогите пожалуйста .и еще проблемка с растягиванием столбцов ,как их растянуть ?

у меня есть запрос в форме и обработчик нажатия на кнопку продать

private void Shops_Load(object sender, EventArgs e)
            {
                p = "Продукция";
                string query1 = "SELECT ID,Title,ArticleNumber,MinCostForAgent FROM Product_KP ";
                dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                dataGridView1.AllowUserToAddRows = false;
                dataGridView1.DataSource = con.ConDS(query1).Tables[0];
                DataGridViewButtonColumn col = new DataGridViewButtonColumn();
            col.Text = "Продать";
            col.Name = "Продажа";
            dataGridView1.Columns.Add(col);
            col.UseColumnTextForButtonValue = true;
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;


            if (dataGridView1.Columns [e.ColumnIndex].Name== "Продажа")
            {

            }



        }
    }

  • https://ru.stackoverflow.com/a/1199692/373567 берете 2 BindingList, привязываете к 2 DGV, при нажатии на кнопку из одного списка удалчете элемент, в другой добавляете. Проще не придумаешь. – aepot Feb 18 '22 at 16:32
  • А нельзя просто прописать код для кнопки чтобы передавал всю строку в другой датагридвьюв? – Илья Feb 18 '22 at 16:44
  • Это будет сложнее, чем я предлагаю. А потому почему бы вам не научиться работать с данными правильно? В вашем случае BindingList заменяет DataTable, уже все, так сказать, готово. Создайте вторую DataTable, накидайте в нее таких же колонок. При нажатии забирайте DataRow и уносите во вторую DataTable. – aepot Feb 18 '22 at 16:47
  • А как забирать DataRow и уносить во вторую DataTable? – Илья Feb 18 '22 at 16:48
  • Индекс строки вам известен, так? Берете строку из DataTable по индексу, это и есть DataRow. Вот такое заклинание DataTable dt = (DataTable)((DataGridView)sender).DataSource; DataRow row = dt.Rows[e.RowIndex]; dt2.ImportRow(row); – aepot Feb 18 '22 at 16:51
  • Спасибо но dt2 он не видит,видимо надо создать – Илья Feb 18 '22 at 16:59
  • Я же вам выше писал "создайте вторую DataTable...". Так же в Shops_Load событии, скопируйте туда колонки из первой таблицы. И таскайте строки туда-сюда, сколько угодно. :) DGV сама покажет все изменения. Положите вторую либо в поле класса формы, либо так же можно ее из DataSource второй DGV достать. Но сначала конечно ее туда надо положить. :) – aepot Feb 18 '22 at 16:59

0 Answers0