Непонятно, что именно здесь не работает, но похоже, что вы пытаетесь назначить Click
делегат на ваше button.Click
событие, пока Click
пусто. Что вам нужно сделать, это назначить другого делегата, который вызовет Click
.
Заменить button.Click += Click;
на:
button.Click += (sender, args) => { if (Click != null) Click(sender, args); };