【问题标题】:Get current cell column index in DataGridView CurrentCellChanged Event在 DataGridView CurrentCellChanged 事件中获取当前单元格列索引
【发布时间】:2011-08-10 14:55:18
【问题描述】:

我有DataGridViewCurrentCellChanged 事件处理程序,我希望能够从事件处理程序访问当前选定的单元格列索引。

我曾经在 CellClick 处理程序中有代码,它有 DataGridViewCellEventArgs 作为参数,所以我能够从事件 args 参数中获取列索引,但是 CurrentCellChanged 事件有 EventArgs 作为参数我认为应该暗示没有此事件的数据。

有没有办法访问新的当前选定的单元格列索引?

【问题讨论】:

    标签: c# winforms datagridview event-handling


    【解决方案1】:

    使用 DataGridView 的 CurrentCell 属性。

    void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
    {
        MessageBox.Show(dataGridView1.CurrentCell.ColumnIndex.ToString());
        MessageBox.Show(dataGridView1.CurrentCell.RowIndex.ToString());
    }
    

    【讨论】:

      【解决方案2】:

      使用DataGridView.CurrentCell 属性..

      http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx

      int columnIndex = dataGridView.CurrentCell.ColumnIndex;
      int rowIndex = dataGridView.CurrentCell.RowIndex;
      

      http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.aspx

      【讨论】:

        【解决方案3】:

        值得注意的是,如果有人使用 WPF(使用 DataGrid,而不是 DataGridView),他们可以这样做:

        DataGrid currentGrid = sender as DataGrid;
        

        然后

        currentGrid.CurrentColumn.DisplayIndex
        

        currentGrid.CurrentCell.Column.DisplayIndex
        

        【讨论】:

          【解决方案4】:

          如果你想用列的标题检查它,那么

          dataGridView.CurrentCell.Column.Header
          

          【讨论】:

          • CurrentCell.OwningColumn.HeaderText
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-09
          • 2019-09-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多