просто чтобы прояснить это: довольно маловероятно, что вам когда-нибудь придется что-то делать с WndProc внутри winforms / wpf / что угодно в мире .net.
Все эти неприятные вещи отвлечены и спрятаны от вас, и я не знаю ни одного случая, где бы я действительно нуждался / пропустил это.
В Winforms вы просто подключаете события с
Eventname += EventHandlerMethod;
(или вы можете делать такие более сложные вещи с помощью анонимных методов и лямбд, но в данный момент не слишком увлекайтесь этим).
Самый простой способ - просто использовать конструктор и подключать туда свои события:
После подписки на событие с помощью этого инструмента редактор покажет вам созданный им обработчик, и вы сможете начать кодирование.
Вот краткий пример:
Я только запустил новый проект и добавил на форму одну кнопку «button1»:
затем я подключаю событие OnClick к кнопке (выберите кнопку и перейдите на вкладку события):
и, наконец, я добавил код, чтобы изменить текст кнопок на «нажал» в коде:
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace StackOverflowHelp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// the following line is from InitializeComponent - here you can see how the eventhandler is hook
// this.button1.Click += new System.EventHandler(this.OnButton1Clicked);
}
private void OnButton1Clicked(object sender, EventArgs e)
{
var button = sender as Button; // <- same as button1
if (button == null) return; // <- should never happen, but who is to know?
button.Text = "clicked";
}
}
}
вот и все. Гадкая диспетчеризация событий осуществляется рамкой.