2015-01-08 108 views
2

我想知道如何在c#中調用事件。實際上,我有一個datagridview雙擊事件,它在datagridview中填充f2的文本框和選定行的值,並在這些值的分配文本框中顯示form2。現在我想通過點擊一個按鈕來做到這一點,說當點擊該按鈕時,調用我的datagridview雙擊事件,下面是我的雙擊事件ty。如何通過單擊按鈕來調用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(); 
    //} 
} 

回答

2

既然你不使用與發件人的對象和事件參數的任何那麼解決的辦法是,因爲這

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_CellDoubleClick,您註冊該事件將在CellDoubleClick事件觸發時執行。如果你註冊了其他方法,當CellDoubleClick被觸發時,你應該明確地執行它們。

請記住,您始終可以從KryptonDataGridView創建派生類並在內部處理這些內容,並提供一個API供您自己稍後或在許多複雜場景中使用,您可以獲得在內部觸發事件的基礎方法使用反射控制並手動啓動。

+0

ty我會試試看並給予反饋 – RichieCr7

+0

ty它的工作,現在我知道如何明確地調用函數 – RichieCr7

+0

看到我的更新... @galaxybomb – dotctor

相關問題