Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public partial class FormMain : Form
- {
- private EventWrapper<KeyPressEventHandler> keyPressOn_PushButton;
- private EventWrapper<MouseEventHandler> clicksOn_PushButton;
- public FormMain()
- {
- InitializeComponent();
- OtherStuff();
- }
- private void OtherStuff()
- {
- var clicksOn_textBoxForLog = new MouseClickEventWrapper(textBoxForLog)
- .AddHandler((sender, args) => textBoxForLog
- .AppendText("clicksOn_textBoxForLog: " + args.Button.ToString() + "\n"));
- keyPressOn_PushButton = new KeyPressEventWrapper(buttonPush)
- .AddHandler((sender, args) => textBoxForLog
- .AppendText("keyPressOn_PushButton: " + args.KeyChar.ToString() + "\n"));
- clicksOn_PushButton = new MouseClickEventWrapper(buttonPush)
- .AddHandler((sender, args) => textBoxForLog
- .AppendText("clicksOn_PushButton1: " + args.Clicks.ToString() + "\n"))
- .AddHandler((sender, args) => textBoxForLog
- .AppendText("clicksOn_PushButton2: " + args.Button.ToString() + "\n")); ;
- }
- private void buttonRemove_Click(object sender, EventArgs e)
- {
- keyPressOn_PushButton.RemoveAllHandlers();
- clicksOn_PushButton.RemoveAllHandlers();
- }
- }
- public abstract class EventWrapper<THandler>
- {
- protected readonly Control Control;
- protected readonly List<THandler> Handlers = new List<THandler>();
- protected EventWrapper(Control control)
- {
- Control = control;
- }
- public EventWrapper<THandler> AddHandler(THandler handler)
- {
- AddTheHandler(handler);
- Handlers.Add(handler);
- return this;
- }
- public void RemoveAllHandlers()
- {
- foreach (var handler in Handlers)
- {
- RemoveHandler(handler);
- }
- }
- protected abstract void AddTheHandler(THandler handler);
- protected abstract void RemoveHandler(THandler handler);
- }
- public class KeyPressEventWrapper
- : EventWrapper<KeyPressEventHandler>
- {
- public KeyPressEventWrapper(Control control)
- : base(control)
- {
- }
- protected override void AddTheHandler(KeyPressEventHandler handler)
- {
- Control.KeyPress += handler;
- }
- protected override void RemoveHandler(KeyPressEventHandler handler)
- {
- Control.KeyPress -= handler;
- }
- }
- public class MouseClickEventWrapper
- : EventWrapper<MouseEventHandler>
- {
- public MouseClickEventWrapper(Control control)
- : base(control)
- {
- }
- protected override void AddTheHandler(MouseEventHandler handler)
- {
- Control.MouseClick += handler;
- }
- protected override void RemoveHandler(MouseEventHandler handler)
- {
- Control.MouseClick -= handler;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement