在C#中获取DataGridViewRow事件中的选定行

时间:2011-09-27 12:05:10

标签: c# .net winforms datagridview

我正在使用绑定到数据库的DataGridView。我有一个禁用的按钮。选择行时,不是通过单击单元格而是选择行选择窗格,我想响应事件并启用该按钮。

3 个答案:

答案 0 :(得分:3)

嗯,有RowHeaderMouseClick event。从那里,您可以获取e.RowIndex以确定点击发生在哪一行。

答案 1 :(得分:2)

protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        AddRowSelectToGridView(gridView);
        base.Render(writer);
    }

    private void AddRowSelectToGridView(GridView gv)
    {
        try
        {
            foreach (GridViewRow row in gv.Rows)
            {
                row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.textDecoration='underline';";
                row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
                row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(gv, "Select$" + row.RowIndex.ToString(), true));
            }
        }
        catch (Exception ex)
        {
        }

    }

试试这段代码,你可以选择行..

答案 2 :(得分:0)

可以说用于检测何时选择DataGridView行的“正确”事件是SelectionChanged

dataGridView1.SelectionChanged += new EventHandler(dataGridView1_SelectionChanged);

void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    // code that happens after selection
}

此事件的问题是事件签名只有一个简单的EventArgs,而不是有关DataGridView的特殊信息。此外,这会响应选择更改的任何来源,而不是选择行标题。

根据您的确切需求,困惑的RowHeaderMouseClick答案可能会更好。