更改int以匹配columnheader.MouseDoubleClick上的列号

时间:2011-06-20 09:17:55

标签: search datagridview

这个问题是相当自我解释的,但无论如何都是这样:

用户双击他要搜索的列,int =列号,搜索table[row_iterator][int] return all matches。 (我希望用户选择,因为它并不总是相同的列/文件)

另外,我正在Excel文件中处理一个非常大的文件,200k记录+ 50k(每月)。有关搜索此内容而不杀死正在运行3小时的PC的建议吗?

1 个答案:

答案 0 :(得分:1)

我不是百分百肯定我理解你的问题,因为你基本上在问题标题中自己回答了问题。

DataGridView提供了几个处理双击的事件,包括你提到的ColumnHeaderMouseDoubleClick

我要看的两个事件是:ColumnHeaderMouseDoubleClickCellDoubleClick,它们之间的区别在于ColumnHeaderMouseDoubleClick您只能获得双击标题行的事件,同时为整个网格引发CellDoubleClick。 (同样,使用鼠标版本,您可以捕获的不仅仅是鼠标左键)。

以下是每个事件的处理程序,这两个事件都有自己的Args对象,可用于检索您要查找的列索引。

private void dataGridView1_ColumnHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
    MessageBox.Show(dataGridView1.Columns[e.ColumnIndex].Name);
}

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    MessageBox.Show(dataGridView1.Columns[e.ColumnIndex].Name);
}

关于搜索大型Excel文件的次要问题确实值得成为其自身的问题 - 您需要提供有关该文件内容及其来源的更多信息以获得最佳答案。