在c#中的DataGridViewRow事件中获取选定的行
本文关键字:获取 中的 DataGridViewRow 事件 | 更新日期: 2023-09-27 18:10:01
我正在使用绑定到数据库的DataGridView
。我有一个按钮是禁用的。当选中一行时,不是通过单击单元格,而是通过单击行选择窗格,我希望响应事件并启用该按钮。
这里有RowHeaderMouseClick事件。从那里,您可以获得e.RowIndex来确定单击发生在哪一行。
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)
{
}
}
试试这段代码,你可以选择行…
可以证明,用于检测何时选择DataGridView行的'正确'事件是SelectionChanged
。
dataGridView1.SelectionChanged += new EventHandler(dataGridView1_SelectionChanged);
void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
// code that happens after selection
}
这个事件的问题是事件签名只有一个普通的EventArgs,没有关于DataGridView的特殊信息。此外,这响应选择更改的任何来源,而不是,只有被选择的行标题。
根据您的确切需要,RowHeaderMouseClick
的困惑答案可能更好。