If a Tick-handling function will only be used in one context (i.e. always in the same function in combination with the same Timer object), why bother make it a separate function
You're looking for Anonymous Methods:
myTimer.Tick += delegate (object sender, EventArgs e) {
MessageBox.Show("Hello world!");
};
You can also omit the parameters:
myTimer.Tick += delegate {
MessageBox.Show("Hello world!");
};
In C# 3.0, you can also use a Lambda Expression:
myTimer.Tick += (sender, e) => {
MessageBox.Show("Hello world!");
};