Ленивое и компактное хранение текста в теге
Если вы немного ленивы и не используете свойство Tag элементов управления для чего-либо еще, вы можете использовать его для хранения текста всплывающей подсказки и назначения обработчикам событий MouseHover всем такие элементы управления за один раз выглядят так:
private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
ToolTip1 = new System.Windows.Forms.ToolTip();
foreach(Control ctrl in this.Controls)
{
if (ctrl is Button && ctrl.Tag is string)
{
ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
{
var btn = (Control)o;
ToolTip1.SetToolTip(btn, btn.Tag.ToString());
});
}
}
}
В этом случае всем кнопкам, имеющим строку в свойстве Tag , назначается событие MouseHover . Чтобы сохранить его компактность, событие MouseHover определяется встроенным с помощью лямбда-выражения. В случае, если какая-либо наведенная кнопка будет иметь текст Tag , назначенный всплывающей подсказке и показанный.