如何从按钮中调用Datagridview单元格双击事件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (284)

我正在尝试从另一个按钮调用datagridview单元格事件方法。

DataGridView单元双击方法

private void ListDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                ListDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                DataGridViewRow row = this.ListDataGridView.Rows[e.RowIndex];

                comboBox2.Text = row.Cells[1].Value.ToString();

            }
        }

这是我正在调用此方法的Button

private void button6_Click(object sender, EventArgs e)
{
  ListDataGridView_CellDoubleClick(sender, e);
}

我收到错误

错误3名称空间'System'中不存在类型或命名空间名称'DataGridViewCellEventHandler'(您是否缺少程序集引用?)C:\ VisualC#\ Projects \ DataGridViewApplication \ DataGridViewApplication \ List.Designer.cs 340 46 DataGridViewApplication

我做了什么:

我将EventArgs更改为DataGridViewCellEventArgs。

private void button6_Click(object sender, DataGridViewCellEventArgs e)
   {    
     ListDataGridView_CellDoubleClick(sender, e);
   }

现在我收到错误:

this.button6.Click += new System.EventHandler(this.button6_Click);

错误3'button6_Click'没有重载匹配委托'System.EventHandler' C:\ VisualC#\ Projects \ DataGridViewApplication \ DataGridViewApplication \ List.Designer.cs 340 35 DataGridViewApplication

现在我将按钮事件处理程序代码更改为此

this.button6.Click += new System.DataGridViewCellEventHandler(this.button6_Click);

仍然收到此错误并停留在这里

错误3'button6_Click'没有重载匹配委托'System.EventHandler'

在这里找到一个解决方案: 如何通过单击按钮调用datagridview事件?

private void button6_Click(object sender, EventArgs e)
        {
            ListDataGridView_CellDoubleClick(null, null);  
        }

但这不适合我,它给了我一个错误。

你调用的对象是空的。

提问于
用户回答回答于
    private void button6_Click(object sender, EventArgs e)
    {

        ListDataGridView_CellDoubleClick(this.ListDataGridView, new DataGridViewCellEventArgs(this.ListDataGridView.CurrentCell.ColumnIndex,this.ListDataGridView.CurrentRow.Index));

    }
用户回答回答于

我希望你在Form.cs文件的顶部有这个:

using  System.Windows.Forms;

事件处理程序是强类型的,因此事件和处理程序都需要具有匹配类型。

Click事件处理程序要求的方法签名void(object sender, EventArgs e),以便您的初始密码是正确的做法:

private void button6_Click(object sender, EventArgs e)
{
  // create and set values for the event argument. 
  // it can't be EventArgs, so just instantiate the right type
  // the constructor needs a row and column
  var datagridviewArgs = new DataGridViewCellEventArgs(42,13);
  ListDataGridView_CellDoubleClick(sender, datagridviewArgs);
}

但正如您所看到的,您需要在调用时为第二个参数DataGridViewCellEventArgs提供正确的类型ListDataGridView_CellDoubleClick

所属标签

可能回答问题的人

  • 优惠活动秘书

    0 粉丝2 提问7 回答
  • 天使的炫翼

    17 粉丝531 提问6 回答
  • 最爱开车啦

    8 粉丝503 提问6 回答
  • uncle_light

    5 粉丝518 提问5 回答

扫码关注云+社区

领取腾讯云代金券