在DataGridView中获取选定的行

时间:2012-08-27 08:03:14

标签: c# datagridview selection

ALL,

我的WinForms应用程序上有一个DataGridView控件,其选择属性为“整行”,没有多选。我还将SelectionChanged委托附加到它,我需要获取当前选定的行。

    private void order_SelectionChanged(object sender, EventArgs e)
    {
        ordersItemIndex = order.SelectedRows[0].Index;
    }

问题是,当程序启动时,根本就没有选择,只有以后的用户才能用鼠标或键盘改变选择。所以在我的Form_Load()事件中我有这个:

   order.ClearSelection();

但是,此代码路径会在程序启动时抛出异常。

有没有一种很好的方式告诉程序“我们正在加载表单,不要调用委托”,没有任何其他变量?

谢谢。

1 个答案:

答案 0 :(得分:4)

您可以在Form_Load()(不在InitializeComponents()

中清除选择后添加order_SelectionChanged

但最好检查你的处理程序是否有任何选定的行。

private void order_SelectionChanged(object sender, EventArgs e)
{
    if (order.SelectedRows.Count > 0)
      ordersItemIndex = order.SelectedRows[0].Index;
}