Да, потому что вы объявляете это снова. Запишите в начало вашего класса глобальную переменную.
ToolTip toolTip1 = new ToolTip();
Тогда события (также конструктор) могут использовать ее:
private void ChkEnableTips_CheckedChanged(object sender, EventArgs e)
{
if (ChkEnableTips.Checked == true)
toolTip1.SetToolTip(this.btnRunExtApp, "Run the external application");
if (ChkEnableTips.Checked == false)
toolTip1.SetToolTip(this.btnRunExtApp, null);
}
Не устанавливать toolTip1
в Load
вместо события go в представлении конструктора установите флажок по умолчанию. В любом случае это вызовет событие, и обработчик выше сделает всю работу за вас. Также таким образом вы избегаете второго вызова SetToolTip()
.
(Кстати, некоторая информация о вашем будущем дизайне, когда вы хотите инициализировать в constructor
- вместо Load
-: инициализация поля происходит до того, как строк в конструкторе.)
Редактировать:
Возможно, в Toolbox есть компонент с именем ToolTip. Вы можете перетащить. Это ничего не меняет! просто перемещает эту строку:
ToolTip toolTip1 = new ToolTip();
В designer.cs