Design Hora de visualização para eventos de Controle do Usuário
-
02-07-2019 - |
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.
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