Кнопки в DataGridView - PullRequest
       3

Кнопки в DataGridView

0 голосов
/ 22 февраля 2019

Я новичок, и у меня возникла проблема с кнопками в DataGridView.

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

Но если я поставлю этоодин и тот же текст на кнопке, все строки перекрашиваются, и на всех кнопках есть текст последней созданной кнопки.

Мой код находится в событии нажатия кнопки DataGridView:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    var senderGrid = (DataGridView)sender;
    textBox1.Text += "ligne clické " + e.RowIndex+ Environment.NewLine;
    if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
        e.RowIndex >= 0)
    {
        textBox1.AppendText( "bouton clické  "+btn.Tag+ Environment.NewLine) ;
    }
}

private void button1_Click(object sender, EventArgs e)
{
    string[] row;
    row = new string[] { "", "Product "+dataGridView1.RowCount };            
    dataGridView1.Columns[1].ReadOnly = true;
    btn.HeaderText = "Click Data";           
    Random rnd = new Random();
    int RND = rnd.Next(1, 1003);
    btn.Text = "Click Here"+dataGridView1.RowCount+" " + RND.ToString(); 
    btn.Name = "btn"+RND.ToString();
    btn.Tag = "tag ->" + dataGridView1.RowCount;
    btn.UseColumnTextForButtonValue = true;
    dataGridView1.Rows.Add(row);
}

1 Ответ

0 голосов
/ 22 февраля 2019

Я нашел решение

private void button1_Click(object sender, EventArgs e)
    {
        DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
        btn.HeaderText = "Click Data";
        Random rnd = new Random();
        int RND = rnd.Next(1, 1003);
        btn.Text = "Click Here" + dataGridView1.RowCount + " " + RND.ToString();
        btn.Name = "btn" + RND.ToString();
        btn.Tag = "tag ->" + dataGridView1.RowCount;
        int rowIndex = dataGridView1.Rows.Add(btn);

        dataGridView1.Rows[rowIndex].Cells[0].Value = btn.Text;
        dataGridView1.Rows[rowIndex].Cells[1].Value = "Product " + dataGridView1.RowCount;



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