2017-07-07 1 views
0

Comment faire plusieurs arguments plus de deux? CustomButtonClickEventArgs est partagé par plusieurs endroits, je ne veux pas modifier. Comment ajouter les arguments ActiveRow et ActiveCol qui ont indiqué l'emplacement ComboBox dans une grille dans l'événement ComboBoxCustomButtonClick comme ci-dessous ce que je "attendais"?Evénement C# avec plusieurs arguments

private void MyUC1_ComboBoxCustomButtonClick(object sender, MyUC.CustomButtonClickEventArgs e, int ActiveRow, int ActiveCol) 

déclare:

public class CustomButtonClickEventArgs : EventArgs 
    { 
     public readonly int Index; 

     public readonly string Key; 

     public readonly string Tag; 

     public readonly Keys ModifierKeys; 

     public CustomButtonClickEventArgs(int index, string key, string tag, Keys modifierKeys) 
     { 
      this.Index = index; 
      this.Key = key; 
      this.Tag = tag; 
      this.ModifierKeys = modifierKeys; 
     } 
    } 

public delegate void CustomButtonClickEventHandler(object sender, CustomButtonClickEventArgs e); 

ComboBox located in Grid Cell(1,1)

+0

Pourriez-vous ajouter un décorateur/wrapper à CustomButtonClickEventArgs qui a ajouté les arguments ActiveRow et ActiveCol? – Andrew

Répondre

2

Vous venez de définir les arguments d'événements (EventArgs). Ce dont vous avez besoin, c'est d'un délégué qui définit la façon dont la méthode devrait ressembler.

Peut-être que quelque chose comme ça?

public delegate void CustomButtonClickEventHandler(object sender, MyUC.CustomButtonClickEventArgs e, int ActiveRow, int ActiveCol); 

Lorsque vous définissez l'événement, il a besoin ce délégué:

public event CustomButtonClickEventHandler ComboBoxCustomButtonClick; 
+0

Le nouveau CustomButtonClickEventHandler fonctionne pour plusieurs arguments. J'avais l'habitude de mettre seulement 2 arguments. Maintenant, je savais que ça pouvait être plus de nombres. Réponse acceptée. – qtg

+0

Il s'agit essentiellement d'un plan pour une définition de méthode. –

0

mon nouveau CustomButtonClickEventHandler défini comme ci-dessous.

public delegate void ComboBoxCustomButtonClickEventHandler(object Sender, int ComboBoxCol, int ActiveRow, int ActiveCol, CustomButtonClickEventArgs e); 

[Category("ComboBox"), Description("Occurs when a custom button of the ComboBox is clicked.")] 
public event ComboBoxCustomButtonClickEventHandler ComboBoxCustomButtonClick;