Инструмент для изучения полей формы приложения Windows Form
Я работаю над приложением WinForm. Форма имеет много полей / компонентов, но плохо построена. например, поле используется в качестве имени пользователя в одном случае и в качестве пути к папке в другом случае. Код довольно плохо обслуживается.
Возможно, что когда я запускаю приложение и появляется GUI, я могу использовать инструмент, подобный "spy++", который может показывать мне "имена" компонентов (не идентификаторы). Например, название кнопки или название метки.
Или, если я могу использовать SPY++ для "имен", пожалуйста, скажите мне?
1 ответ
Я бы решил эту проблему, добавив в форму элемент управления 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 в своей форме.