2012-12-24 16 views
6

Così ho il seguente codice per quando il "Add giocatore" viene cliccato il pulsanteAttivazione di un pulsante di scatto con il codice

private void addPlayerBtn_Click_1(object sender, EventArgs e) 
{ 
    //Do some code 
} 

voglio innescare questo codice dal mio SDK comunque. Ecco quello che ho provato

private void command() 
{  
    addPlayerBtn_Click_1(object sender, EventArgs e);   
} 

ricevo un sacco di errori, non appena ho messo nella linea

addPlayerBtn_Click_1(object sender, EventArgs e) 

Qualcuno potrebbe dirmi come scrivere il codice in modo che io possa attivare un evento semplicemente scrivendo in codice?

risposta

17

Per uno, quando si chiama un metodo, non si dichiara il tipo del parametro, solo il valore.

Quindi questo:

addPlayerBtn_Click_1(object sender, EventArgs e); 

Dovrebbe essere

addPlayerBtn_Click_1(sender, e); 

Ora, si dovrà dichiarare sender e e. Questi possono essere oggetti reali, se si dispone di args evento per passare, o:

addPlayerBtn_Click_1(null, EventArgs.Empty); 

Quanto sopra può essere utilizzato sia in WinForms o ASP.NET. Nel caso di WinForms, è possibile anche chiamare:

addPlayerBtn.PerformClick(); 
6

Quando si chiama una funzione, è fornire argomenti attuali, che sono valori, non argomenti formali, che sono i tipi e nomi di parametro.

Change

addPlayerBtn_Click_1(object sender, EventArgs e); 

a

addPlayerBtn_Click_1(addPlayerBtn, EventArgs.Empty); 
1
addPlayerBtn_Click_1(object sender, EventArgs e); 

dovrebbe essere:

addPlayerBtn_Click_1(this, new EventArgs()); 
2
addPlayerBtn_Click_1(null, null); 

Questo funziona se non è necessario l'informatio n in sender e e.

2

Non si sta utilizzando il mittente o gli eventi in modo da poter chiamare la funzione direttamente in questo modo:

addPlayerBtn_Click_1(null, null); 
0
private void command() 
{  
    addPlayerBtn.PerformClick(); 
} 
Problemi correlati