日期:2014-05-19  浏览次数:20890 次

datagridview 的事件问题
我添加了添加记录事件   dataGridView1_RowsAdded   可是不光是在添加记录时候触发此事件,在点

“columnheaders”(datagridview   最上面的那部分,带排序功能的地方)   这块也会触发,不知道怎么

才能只有添加记录的时候才触发??

我现在的解决办法是把“columnheaders”隐藏掉,但是感觉这样不太好。所以看看有别的办法解决吗?

------解决方案--------------------
QQ群:323373
------解决方案--------------------
代码如何写的?
------解决方案--------------------

一是:让列头不可用(不可点)

二是:在事件里判断( -1是列头的索引).
if (e.RowIndex != -1)
{
// 做处理...
}
------解决方案--------------------
bool newRowNeeded;
private void Form1_Load(object sender, EventArgs e)
{
this.dataGridView1.VirtualMode = true;
}

………………

private void dataGridView1_NewRowNeeded(object sender,
DataGridViewRowEventArgs e)
{
newRowNeeded = true;
}
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
if (newRowNeeded)
{
this.newRowNeeded = false;
MessageBox.Show( "New Row Added ");
this.dataGridView1.VirtualMode = true;
}

}

private void dataGridView1_NewRowNeeded(object sender, DataGridViewRowEventArgs e)
{
this.newRowNeeded = true;
this.dataGridView1.VirtualMode = false;
}

不知道lz是否这个意思