【问题标题】:c# .net datagridview SelectionChangedc# .net datagridview SelectionChanged
【发布时间】:2012-12-14 07:04:09
【问题描述】:

我正在为一些应该很简单的事情绞尽脑汁。现在已经一天了,所以我终于放弃了,我会问这个问题。如何在.net 中的datagridview 上实际触发 selectionChanged 事件? 当用户双击/或单击行上的任何位置时,我基本上想获取行值。但我一辈子都不能让这个事件触发甚至很难我在这里读到这应该是我需要使用的事件?

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in AddrGrid.SelectedRows)
            {
                string value1 = row.Cells[0].Value.ToString();
                string value2 = row.Cells[1].Value.ToString();
                //...
            }
        }

我已经尝试过与此类似的操作,但我单击数据网格单元格或行并没有触发我所缺少的内容,我对此毫无希望?

当我点击一个单元格时,我会触发此事件。

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {


            Addresses.aTyp = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Address Type"].Value.ToString();
            Addresses.seq  =  AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Sequence"].Value.ToString();

        }

但我喜欢捕捉双击或单击一行而不仅仅是一个单元格。 任何帮助将不胜感激。

【问题讨论】:

  • 你在连接事件处理程序吗?
  • 我对事件处理很陌生,请告诉我如何连接它。
  • AddrGrid 是什么,这看起来是个问题。我会发布它应该是什么样子
  • 你到底想在这个事件中做什么 dataGridView1_CellContentClick
  • 我试图从网格中选择一些值,然后关闭显示网格的表单。

标签: c# asp.net .net visual-studio-2010


【解决方案1】:

在您的网格对象上,我们称它为“foo”。你会做类似的事情..

foo.SelectionChanged += dataGridView1_SelectionChanged

您需要在某处执行此操作以连接事件。我通常在表单的构造函数中这样做

【讨论】:

  • @MarkHall 好电话,我总是忘记那个选项存在
  • 我觉得自己像个白痴,这就是我想要做的!感谢您为我指明正确的方向。
【解决方案2】:
private void dataGridView_SelectionChanged(object sender, EventArgs e) 
{
     foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
     {
        string value1 = row.Cells[0].Value.ToString();
        string value2 = row.Cells[1].Value.ToString();
     }
 }

【讨论】:

    【解决方案3】:

    你可以用这个

        private void AddrGrid_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
    
            Addresses.aTyp = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Address Type"].Value.ToString();
            Addresses.seq = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Sequence"].Value.ToString();
        }
    

    【讨论】:

      【解决方案4】:

      许多与 DataGridview 的 selectionchanged 事件相关的答案都使用“DG1.SelectedRows(0)”。这从根本上是错误的。可能选择了多行,并且第一个选择的行可能不是新选择的行。除非您每次都想解析所有选定的行,否则应使用“DG1.Rows(DG1.CurrentCell.RowIndex)

      【讨论】:

        猜你喜欢
        • 2020-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 1970-01-01
        • 2020-02-05
        • 2018-12-08
        相关资源
        最近更新 更多