Symptom and Mechanism
You add a binding to a component's Visible property. The live tag value evaluates to false, so the component disappears from the Designer canvas. You then switch the Designer to Comm Off to keep editing, and the component stays hidden. Clicking on the spot where it sits selects nothing, or selects whatever is underneath it.
Two separate behaviors cause this:
-
The property keeps its last evaluated value. While the Designer reads tags, the binding writes the tag result into
Visible. Switching toComm Offstops the tag subscriptions. It does not reset bound properties to a design-time default. The last value (false) remains in the property until something changes it. - The canvas does not hit-test invisible components. A single mouse click selects only visible components. This is deliberate. Earlier Designer behavior let invisible controls be clicked, and users reported that they got in the way during layout work, so click selection now skips them. It is a preference trade-off, not a defect.
The second behavior matters more. Once you can select the hidden component, editing it is routine.
Symptoms vs. Causes
| What you see | Cause | What resolves it |
|---|---|---|
| Component vanishes as soon as the visibility binding is added | Designer is reading tags; binding evaluated false and wrote it to Visible
|
Expected; work with the selection methods below |
Component stays hidden after switching to Comm Off
|
Comm Off freezes the last evaluated value; it does not revert the property | Temporarily set Visible true in the Property Editor, or edit without making it visible |
| Clicking where the component sits selects nothing | Click selection skips invisible components by design | Marquee (drag) selection or Project Browser |
| Purple outline appears but a click inside it still selects nothing | Spotlight only draws the outline; it does not change click selection | Use the outline as a target for a marquee drag |
| Marquee grabs neighboring components too | Drag direction set to partial-overlap selection | Reverse drag direction to require full enclosure |
Manual Visible = true reverts on its own |
Designer returned to a tag-reading comm mode and the binding re-evaluated | Expected; the binding owns the property whenever tags are read |
Approaches Compared
Four workable methods exist. They differ in whether they show you where the component is, whether they select it, and whether they leave anything behind that you have to undo.
| Method | Shows location | Selects component | Leaves a state to undo | Main cost |
|---|---|---|---|---|
| Project Browser selection | No | Yes | No | You must know the component name; slow on busy windows |
Toggle Visible in the Property Editor |
Yes, once toggled | Only after you have already selected it another way | Yes: restore before saving | Must first locate the component; overwritten when tags are read again |
View > Spotlights > Invisible |
Yes (purple outline) | No | No | Location only; clicks still pass through |
| Spotlight + marquee (drag) selection | Yes | Yes | No | Drag direction must be controlled to avoid grabbing neighbors |
Recommendation: Leave the Invisible spotlight on and select hidden components with a marquee drag. The spotlight shows where each hidden component is, and the marquee selects it without changing any property. You never have to remember component names, and there is no temporary Visible state to put back before saving. Use the Project Browser as a fallback when the marquee cannot reach the component cleanly.
Procedure: Spotlight and Marquee Selection
-
Set the comm mode. Switch the Designer to
Comm Offif you do not want live tag values changing properties while you edit. Confirm this in the Designer toolbar comm-mode control before continuing. -
Enable the Invisible spotlight. From the Designer menu, select
View > Spotlights > Invisible. Every component whoseVisibleproperty is currently false now has a purple outline. Do not move on until you can see the outline of the target component. - Pick the drag direction. Use a right-to-left drag when the hidden component overlaps or sits next to other components. That direction selects only objects fully enclosed by the rectangle. Use left-to-right only when the area is clear, because it selects anything the rectangle touches. The behavior of each direction is in the next section.
- Start the drag on empty background. If the drag starts on a visible component, the Designer treats it as a move or a click on that component, and no selection rectangle is drawn. Start just outside the purple outline, on bare canvas.
- Draw the rectangle around the purple outline and release.
- Confirm the selection. Check the Property Editor. It must show the hidden component's name and properties, and the Project Browser must highlight the same component. If a neighbor was also caught, redo the drag right-to-left with a tighter rectangle.
- Edit. With the component selected, you can change properties, bindings, and scripts in the Property Editor and the component's dialogs while it remains invisible. For geometry edits that need the component drawn on the canvas, use the temporary toggle described below.
Marquee Drag Direction Rules
The Designer's selection rectangle follows the same convention as most drawing packages: the result depends on which way you drag.
| Drag direction | Selection rule | Use it when |
|---|---|---|
| Right to left | The rectangle must cover the entire object | Hidden component is stacked with or adjacent to others; you want only the enclosed one |
| Left to right | Any object partially covered by the rectangle is selected | Hidden component is isolated, or it is large and hard to enclose fully |
Before relying on either rule on a crowded window, test it on two visible components in an empty area. That takes a few seconds and confirms which direction does which on your Designer build. Hidden components that overlap each other's outlines are the hardest case. Draw the full-enclosure rectangle around the smaller outline, then check the Property Editor. If both are still selected, switch to the Project Browser.
Temporary Visible Toggle and Its Limits
Sometimes you need the component drawn on the canvas, for example to resize it against visible neighbors or check its layering. In that case, make it visible manually:
- Select the component using the marquee method or the Project Browser.
- In the Property Editor, check the
Visiblecheckbox. The component draws on the canvas and now responds to normal clicks. - Make the layout edits.
- Before saving, uncheck
Visibleto return the property to the state it had before you started. - Save the project.
This toggle is disposable. In Comm Off the manual value holds because the binding is not evaluating. As soon as you switch back to a comm mode that reads tags, the binding re-evaluates and overwrites Visible with the tag result. The Designer does not store a separate design-time visibility state for a bound property, so you cannot make a component automatically show itself every time you go to Comm Off. The spotlight-and-marquee method avoids this limitation entirely, which is why it is the recommended default.
One design pattern does give a persistent design-time override: replace the plain tag binding with an expression binding that ORs the tag condition with a custom boolean property on the component or its container. Set that property true while developing, and the component stays visible regardless of the tag. The cost is a second source of truth for visibility. If the override is left true at release, operators see a component that the tag logic meant to hide. That is a functional and potentially a safety or security problem when visibility gates access to controls. If you adopt this pattern, add clearing the override to your pre-release checklist and verify it with the steps below.
Verification Before Saving and Publishing
- Selection check. With the spotlight on, marquee-select each hidden component you edited. Confirm the Property Editor shows the expected name. This proves every edited component is still reachable and was not accidentally moved outside its container's bounds.
-
Property state check. With the component selected, confirm
Visibleis back to the state it had before editing, and that its binding is still attached (the Property Editor shows the property as bound). If you used a design override property, confirm it is false. - Binding check. Switch the Designer to a comm mode that reads tags. The component must appear or disappear to match the current tag value. If it stays visible when the tag says hidden, a leftover override or a broken binding is the cause. Fix it before continuing.
- Transition check. Where you have write access to a non-production tag, change the tag value in both directions. Confirm the component shows and hides on each change and that the purple spotlight outline tracks the hidden state.
- Save and runtime check. Save the project, open the window in a client, and confirm the component's visibility follows the tag value exactly as it did in the Designer. The component must not appear when the controlling tag holds the hidden state.
FAQ
What happens if I save the project with Visible manually set to true on a bound component?
At runtime the binding evaluates and overwrites Visible with the tag result, so a plain tag binding normally still controls visibility. Restore the property anyway before saving so the saved design state matches intent. If you used an expression binding with an OR'd design override, a leftover true override keeps the component visible to operators.
What happens if I click on an invisible component in Ignition Designer?
Nothing is selected. Click selection skips invisible components by design, and it still skips them when View > Spotlights > Invisible is outlining them in purple. Draw a marquee rectangle around the outline, starting on empty canvas, or select the component by name in the Project Browser.
What happens if my marquee selects other components along with the hidden one?
You dragged in the partial-overlap direction (left to right), which selects anything the rectangle touches. Drag right to left instead, so only components fully enclosed by the rectangle are selected. Then confirm in the Property Editor that only the hidden component is selected.