检测鼠标单击选择dataGridView中的行

时间:2012-06-25 10:06:38

标签: c# winforms events datagridview mouseclick-event

我无法让我的应用程序正常工作。我试图用鼠标在datagridview中选择一行。我需要保存此行的索引以允许我在所选行中导航。

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

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

    public event DataGridViewCellMouseEventHandler CellMouseClick;

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

任何人都可以指出我可能出错的地方。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:5)

您需要“wire up”活动。

如果您的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;)。