【发布时间】:2019-07-15 23:07:11
【问题描述】:
我是初学者,我遇到了 DataGridView 中的按钮问题。
当我用网格行号的文本填充单元格时,没问题,文本是正确的,如果我添加新行,则保持正确。
但是,如果我将相同的文本放在 Button 上,所有的行都会被重新绘制,并且所有的 Button 都具有创建的最后一个 Button 的文本。
我的代码是在DataGridView中的一个Button的点击事件中:
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);
}
【问题讨论】:
-
你能显示更多的代码吗?我认为这是在循环中调用的,也许你涉及到闭包?具体来说,我没有看到
btn声明。 -
你在使用 WPF 吗?在这种情况下,您能否提供一些 XAML 代码。
-
这是一个中奖表格
-
我编辑了我的帖子以显示完整的代码
-
你需要澄清你想要做什么。显然,变量
btn(您方便地不显示它的定义)是DataGridViewButtonColumn。在button1_Click事件中,在btn变量上设置的任何“属性”,例如……btn.Text = "Click Here"+dataGridView1.RowCount+" " + RND.ToString();……。将应用于按钮的“整个”列。我不知道你为什么会有其他期望。如果您阐明您希望此“按钮”列做什么以及您希望它显示什么文本,您将帮助自己和他人。
标签: c# winforms button datagridview