DataGridView中的按钮

时间:2019-02-21 22:24:54

标签: c# winforms button datagridview

我是一个初学者,我在DataGridView中遇到按钮问题。

当我用网格的行号填充单元格时,没问题,该文本是正确的,并且如果我添加新行,则保持正确。

但是,如果我将相同的文本放在Button上,则所有行都将重新绘制,并且所有Button均具有创建的最后一个Button的文本。

我的代码在DataGridView的Button的click事件中:

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 :(得分:0)

我找到了解决方法

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;



    }