Ciao. Ho un UserControl che contiene una casella di testo. Volevo accedere all'evento textchanged della casella di testo, ma nelle proprietà dell'evento di usercontrol non vedo gli eventi per la casella di testo. Come posso esporre e gestire particolari eventi dei controlli figlio da UserControl esposto pubblicamente in Winforms con C#.esporre ed aumentare caso di un controllo figlio in un UserControl in C#
23
A
risposta
36
È possibile emergere un nuovo evento e superare eventuali sottoscrizioni direttamente attraverso il controllo, se ti piace:
public class UserControl1 : UserControl
{
// private Button saveButton;
public event EventHandler SaveButtonClick
{
add { saveButton.Click += value; }
remove { saveButton.Click -= value; }
}
}
1
Esporre l'intera TextBox come una proprietà pubblica nel controllo utente e iscriviti alla sua eventi nel modo che desiderate.
Esempio:
class myUserControl: UserControl {
private TextBox _myText;
public TextBox MyText { get {return _myText; } }
}
Dopo aver fatto questo è possibile iscriversi su uno qualsiasi dei suoi eventi in questo modo:
theUserControl.MyText.WhatEverEvent += ...
Spero che questo aiuti!
+0
grazie, avevo fatto cosa simile, al momento. Stavo cercando una soluzione elegante che è stata fornita sopra.Grazie per il tuo aiuto. + 1 –
Problemi correlati
- 1. Come esporre l'intero controllo secondario di usercontrol su winforms designer
- 2. Come esporre la proprietà Text di un UserControl?
- 3. Come esporre una proprietà di dipendenza di un controllo nidificato in un controllo utente?
- 4. Stampa di un form/UserControl in C#
- 5. Come esporre e aumentare eventi personalizzati per un controllo utente winforms vb.net
- 6. In che modo un UserControl WPF eredita un UserControl WPF?
- 7. Come ereditare un UserControl da un altro UserControl?
- 8. Come esporre un ITemplate tramite un controllo utente?
- 9. È possibile esporre un C# Enum ai chiamanti di interoperabilità COM e, in caso affermativo, come?
- 10. Elencare tutti i nodi figlio di un nodo padre in un controllo TreeView in Visual C#
- 11. Utilizzo di BindingSource in un UserControl
- 12. ASP.NET - Controllo di convalida all'interno di UserControl
- 13. Come utilizzare un ContextMenu UserControl in WPF?
- 14. Associazione dati a un UserControl in WPF
- 15. WPF Clipping di un controllo figlio
- 16. Chiamare un metodo di un UserControl in MVVM
- 17. Creare ed esporre un servizio SOAP e il suo WSDL dinamicamente in C# (con un listener TCP personalizzato!)
- 18. C# UserControl Visible Property
- 19. Aggiungi valore di controllo prima di un altro valore di controllo in C#
- 20. VB.NET Seleziona ... Equivalente di un caso in C#
- 21. Browserify: Utilizzare module.exports se necessario, in caso contrario esporre globale
- 22. Il controllo non può passare da un'etichetta di caso ('default:') a un altro in C#
- 23. Rendering software di un Web UserControl
- 24. InotifyPropertyChanged in UserControl
- 25. inserire Usercontrol in FlowLayoutPanel
- 26. UserControl equivalente in MVC3?
- 27. Esporre un'API C++ a C#
- 28. Carica UserControl in TabItem
- 29. Creare un plug-in, esporre eventi
- 30. Come aumentare un evento in un test che utilizza Moq?
Impressionante! Ho fatto qualcosa di simile, aggiungendo esplicitamente un gestore di eventi come ho esposto pubblicamente il controllo figlio attraverso l'usercontrol. Il tuo suggerimento è il modo più ordinato di farlo! Grazie! –
Nonostante la sua eleganza, questa soluzione ha un grave inconveniente: la 'argomento sender' passato al gestore sarà il pulsante, non l'UserControl ... Questo ci rende impossibile utilizzare lo stesso gestore per diverse istanze del controllo –
Is qualcos'altro per fare questo lavoro? in qualche modo il gestore di eventi aggiunto dichiarativo non funziona – Nap