Finding Other Behavior Controls

Overview
Similar to the Example: Camera Control step of this tutorial, you can search for other controls added to the project workspace. There's a number of EZBManager.FormMain methods that make it easy. Additionally, there are a few EZBManager.FormMain events that allow your plugin to watch for added and removed controls. We'll discuss and provide examples of accessing other controls in the current project.

EZBManager.FormMain.OnProjectLoadCompleted()
This event is raised when a project has completed loading all controls to the workspace. This is a handy method if you're looking for a control when the project is loaded. This event will ensure all other behavior controls have loaded before raising. Event raised after a project has completely loaded all behavior controls. If you're control is looking to bind to another control, find the control in this event. If you attempt to look for a control (i.e. camera) during constructor or SetConfiguration, the other control may not have loaded from the config yet. This event is raised after all of the controls have been loaded to the workspace

EZBManager.FormMain.OnBehaviorControlAdded(object newControl, int page)
Event raised when a new control is added to the project workspace. The control and virtual desktop page will be returned. Event raised when a control is added to the workspace. This could be during the project load event, or if a user uses the Add Control menu. If you're wanting to keep track of new controls added to the workspace, this is how to do it. However, if you're expecting a control to exist when a project is loaded, look into OnProjectLoadCompleted event.

EZBManager.FormMain.OnBehaviorControlRemovedHandler(object removedControl)
Event raised when an existing control is being removed from the project workspace. This is not raised when the application is closing or the project is closing. Contrary to OnBehaviorControlAdded, this event is raised when a control is removed by a user from the current workspace. The control is passed as a parameter, but it won't be actually closed until you release it from the event completing. This means don't expect the control to exist once your method attached to this event has completed.