2012-06-25 52 views
0

我无法让我的应用程序正常工作。我想用鼠标在datagridview中选择一行。我需要保存该行的索引以允许我导航选定的行。检测鼠标点击在dataGridView中选择一行

我一直在看DataGridView.CellMouseClick事件(Link)但我无法确保事件处理程序与CellMouseClick事件关联。

我给这家到目前为止的代码很简单,我只是想看看它的检测鼠标点击:

public event DataGridViewCellMouseEventHandler CellMouseClick; 

    private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e) 
    { 
     MessageBox.Show("Mouse clicked in the datagridview!"); 
    } 

谁能指出哪里我可能会错误。任何帮助将是伟大的!

回答

5

您需要“wireup”这个事件。

如果您的DataGridView被称为DataGridView1那么你需要下面的无论是在构造函数中的表单代码行,设计师(如果您添加通过设计师的事件处理程序)或Load事件:

DataGridView1.CellMouseClick += DataGridView1_CellMouseClick; 

这会将代码中的事件处理程序附加到事件中。

您当前的样品看起来像这样:

public event DataGridViewCellMouseEventHandler CellMouseClick; 

    private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e) 
    { 
     MessageBox.Show("Mouse clicked in the datagridview!"); 
    } 

没有必要重新声明,除非你正在构建自己的用户控件,将举办一个DataGridView,你想有效事件to "wrap" or "rebroadcast" that事件(public event DataGridViewCellMouseEventHandler CellMouseClick;)。

+0

啊,我知道我确实需要以某种方式连线它。感谢您的详细解释和有用的链接。优秀的答案! – L337BEAN