Инструмент для изучения полей формы приложения Windows Form - PullRequest
0 голосов
/ 10 августа 2011

Я работаю над приложением WinForm. Форма имеет много полей / компонентов, но плохо построена. например, поле используется в качестве имени пользователя в одном случае и в качестве пути к папке в другом случае. Код довольно плохо обслуживается.

Возможно, что когда я запускаю приложение и появляется GUI, я могу использовать инструмент, подобный «spy ++», который может показывать «имена» компонентов (не идентификаторы). Например, имя кнопки или название метки.

Или, если я могу использовать SPY ++ для «имен», скажите, пожалуйста?

1 Ответ

1 голос
/ 11 августа 2011

Я бы решил эту проблему, добавив в форму элемент управления ToolTip, итерируя по каждому элементу управления и добавив сообщение с подсказкой к каждому элементу управления, являющемуся именем элемента управления.

Сначала добавьте объект ToolTip в форму (из раздела «Инструменты» дизайнера). Вы можете переименовать его, но для демонстрации я оставил его по умолчанию toolTip1.

Затем добавьте метод, похожий на тот, который я публикую ниже, на кодовую страницу вашей формы. (Я предполагаю, что это для C #, но код прост и может быть легко изменен для VB или C ++).

public void AddNameToToolTip(Control c)
{
    toolTip1.SetToolTip(c, c.Name);
    foreach (Control child in c.Controls) AddNameToToolTip(child);
}

Наконец, из конструктора Form добавьте следующую строку кода после вызова InitializeComponent().

AddNameToToolTip(this);

Это добавит всплывающую подсказку к каждому элементу управления в вашей форме. Все, что вам нужно сделать, это навести указатель мыши на каждый элемент управления, и всплывающая подсказка отобразит сообщение через секунду или две, отображающее имя базового элемента управления.

В качестве альтернативы, вы можете рекурсивно добавлять событие MouseHover к каждому элементу управления и, когда событие вызывается, записать имя элемента управления в отладчик. Это также будет работать, если вы уже используете в своей форме элемент управления ToolTip.

...