C# 如何通过单击按钮调用datagridview事件?

C# 如何通过单击按钮调用datagridview事件?,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我想知道如何在c#中调用事件。实际上,我有一个datagridview双击事件,它用datagridview中选定行的值填充f2的文本框,并在指定的文本框中用这些值显示form2。现在我想通过点击按钮来实现这一点,比如说点击按钮时调用我的datagridview双击事件,下面是我的双击事件 private void kryptonDataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try

我想知道如何在c#中调用事件。实际上,我有一个datagridview双击事件,它用datagridview中选定行的值填充f2的文本框,并在指定的文本框中用这些值显示form2。现在我想通过点击按钮来实现这一点,比如说点击按钮时调用我的datagridview双击事件,下面是我的双击事件

private void kryptonDataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    try
    {
        frmUpdate f2 = new frmUpdate();
        f2.txtboxClearingAgent.Text = kryptonDataGridView1.SelectedRows[0].Cells["Clearing Agent Name"].Value.ToString();
        f2.textboxClientCode.Text = kryptonDataGridView1.SelectedRows[0].Cells["Client Code"].Value.ToString();
        f2.txtboxClientName.Text = kryptonDataGridView1.SelectedRows[0].Cells["Client Name"].Value.ToString();
        f2.txtboxPostalAddress.Text = kryptonDataGridView1.SelectedRows[0].Cells["Postal Address"].Value.ToString();
        f2.txtboxTelephone.Text = kryptonDataGridView1.SelectedRows[0].Cells["Telephone"].Value.ToString();
        f2.txtboxFax.Text = kryptonDataGridView1.SelectedRows[0].Cells["Fax"].Value.ToString();
        f2.txtboxEmailAddress1.Text = kryptonDataGridView1.SelectedRows[0].Cells["E-mail Address 1"].Value.ToString();
        f2.txtboxEmailAddress2.Text = kryptonDataGridView1.SelectedRows[0].Cells["E-mail Address 2"].Value.ToString();
        f2.txtboxEmailAddress3.Text = kryptonDataGridView1.SelectedRows[0].Cells["E-mail Address 3"].Value.ToString();
        f2.txtboxWebsite.Text = kryptonDataGridView1.SelectedRows[0].Cells["Website"].Value.ToString();
        f2.txtboxChargeRate.Text = kryptonDataGridView1.SelectedRows[0].Cells["Charge Rate"].Value.ToString();
        f2.txtboxTotalDepo.Text = kryptonDataGridView1.SelectedRows[0].Cells["Total Deposit"].Value.ToString();
        f2.txtboxAccountBal.Text = kryptonDataGridView1.SelectedRows[0].Cells["Account Balance"].Value.ToString();

        f2.Show();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return;
    }
}

private void kryptonbtnEdit_Click(object sender, EventArgs e)
{
    //using (frmUpdate frmUpdate = new frmUpdate())
    //{
    //    DialogResult result = frmUpdate.ShowDialog();
    //}
}

因为您没有使用任何与发送者对象和事件参数相关的东西,所以解决方案就这么简单

kryptonDataGridView1_CellDoubleClick(null, null);
方法
kryptonDataGridView1_CellDoubleClick
与C#中的所有其他函数一样,只是一个函数,您可以显式调用它

如果你想要更多的控制,你可以这样做

private void kryptonbtnEdit_Click(object sender, EventArgs e)
{
    //set parameters of your event args
    var eventArgs = new DataGridViewCellEventArgs(yourColumnIndex, yourRowIndex);

    // or setting the selected cells manually before executing the function
    kryptonDataGridView1.Rows[yourRowIndex].Cells[yourColumnIndex].Selected = true;

    kryptonDataGridView1_CellDoubleClick(sender, eventArgs);
}
请注意,只能从声明事件的控件内的代码引发事件。这不会触发
CellDoubleClick
事件,它只是执行函数
kryptonDataGridView1\u CellDoubleClick
,您可以在触发
CellDoubleClick
事件时注册要执行的函数。如果您已经注册了在触发
CellDoubleClick
时要调用的其他方法,那么您应该显式地执行它们


请记住,您始终可以从
KryptonDataGridView
创建一个派生类,并在内部处理这些事情,并为您自己提供一个API供以后使用,或者在许多复杂的场景中,您可以获得使用反射在控件内部触发事件的底层方法,然后手动触发它。

ty我将尝试它付出feedback@galaxybomb别忘了把他的答案标为正确