Pergunta

Eu tenho criar um controle WinForms que herda de System.Windows.Forms.UserControl ... Eu tenho alguns eventos personalizados sobre o controle que gostaria que o consumidor do meu controle para ser capaz de ver. Eu sou incapaz de realmente começar meus eventos para aparecer na guia Eventos da janela Propriedades durante o tempo de design. Isto significa que a única maneira de atribuir os eventos é escrever programaticamente

myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);

isso é bom para mim, eu acho, mas quando alguém vem a usar o meu UserControl eles não vão saber que existem estes eventos (a menos que eles lêem a doco biblioteca ... sim à direita). Eu sei que o evento vai aparecer usando Intellisense, mas seria ótimo se ele pudesse mostrar na janela de propriedades também.

Foi útil?

Solução

Certifique-se de seus eventos são expostos como público. Por exemplo ...

[Browsable(true)]
public event EventHandler MyCustomEvent;

Outras dicas

A solução usando delegado. Por exemplo eu usei para um ListView costume qual item alça adicionado evento: Declare seu delegado:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

em seguida, declarar o evento que usar o delegado:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Nota: ItemEventArgs é um EventArgs personalizados

A esperança pode ajudá-lo, funciona bem para mim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top