A long time ago when I took over a large winform project. There are the following difficulties:
1. A large project. The entire product build consists of more than 1400 projects.
2. There are too many components and controls.
3,CodeN generations have been uploaded to N generations.
Based on the above situation, no one in the project team can grasp the overall situation. Therefore, it is necessary to quickly locate the code position of a widget or component based on the UI operations during maintenance and modification.
At that time, I first thought of finding a UI spy tool to help with this requirement. After some practices, we found that managedspy is the most useful. Of course, sometimes it works with another similar tool: Object spy.
For more information about managedspy, see http://msdn.microsoft.com/en-us/magazine/cc163617.aspx.pdf.
For details about object spy, refer to: http://www.codeproject.com/kb/dotnet/objectspy.aspx#and the tool source code.
The following is an example to briefly describe the use of managedspy.
The left side of managedspy shows the apps running on the current machine, and each app is displayed in the control tree. You can easily view the namespace information within the [] of the Control tree. Through this, you can find the location of the Code. It should be particularly noted that for the more responsible structure UI, it is often not that easy to find the control you are concerned about. At this time, you can right-click the node in the control tree and select "Show window". Observe the UI of the currently running app and you will find that, A blue-green box will appear in the control area, so that you can know which control corresponds to the UI, in this way, you can accurately find your target control in a small order.
The right view of managedspy is the details of the Control tree node selected on the left. In addition, it should be noted that the attributes of these details can be modified. In addition, the modified effect is displayed on the current app. For example, if you select a label and modify its text attribute, the effect is immediately displayed on the currently running app.