【问题标题】:Get selected row in DataGridView获取 DataGridView 中的选定行
【发布时间】:2012-08-27 08:03:13
【问题描述】:

所有,

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

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

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

   order.ClearSelection();

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

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

谢谢。

【问题讨论】:

    标签: c# datagridview selection


    【解决方案1】:

    您可以在Form_Load()(不是InitializeComponents())中清除选择后添加您的order_SelectionChanged

    但更好地检查您的处理程序是否有任何选定的行。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多