如何在事件处理程序中访问DataGridView?

时间:2016-07-21 16:54:29

标签: c# .net datagridview

我有TabControl,其中包含DataGridViewToolStripButtonDataGridView已启用多个选择。 toolStripButton的功能是从DataGridView中删除行。

DataGridView有一个BindingSource:

partial class MyView 
{
    ...
    this.myBindingSource  = new System.Windows.Forms.BindingSource(this.components);
    ...
    this.dataGridView.DataSource = this.myBindingSource;
    this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
    this.dataGridView.MultiSelect = true;
    ....
    this.tsbDelete.Click += new System.EventHandler(this.tsbDelete_Click);
    ...

我有一个删除按钮的事件处理程序,如下所示:

public partial class MyView : System.Windows.Forms.UserControl, IMyView
    {
    ...
    private void tsbDelete_Click (object sender, System.EventArgs e) 
    {
        var current = myBindingSource.Current;
        ...
    }

当前是单一选择。如果已选择多行,则它是最后选择的行。我无法弄清楚如何选择所有行。困难在于DataGridView在事件处理程序中不可用(或者我不知道如何访问它,这就是问题)。如果可以,我可以访问DataGridView.SelectedRows发件人是按钮,它不直接连接到DataGridView 我该怎么做?

完全指定:

  

System.Windows.Forms.TabControl
      System.Windows.Forms.DataGridView
          System.Windows.Forms.BindingSource
      System.Windows.Forms.ToolStripButton

1 个答案:

答案 0 :(得分:1)

您可能无法访问DGV,因为您的处理程序是公共的而您的构造函数类不是?我总是能够毫无问题地从处理程序中访问元素。