Within `Manipulate`, I want to vanish certain controls if other controls satisfy a specific condition. The simplest case is to consider two checkboxes, `x` and `y`, where `y` vanishes if `x` is selected.

I have heard of the vanishing function `## &[]` or `Unevaluated[Sequence[]]` (from [this question](https://mathematica.stackexchange.com/questions/3700/how-to-avoid-returning-a-null-if-there-is-no-else-condition-in-an-if-construct)), but it doesn't seem to do what I want. Consider the following code

```
Manipulate[x,
 Control[{{x, 0}, {1, 0}}],
 Dynamic@If[x == 0, Control[{{y, 0}, {1, 0}}], ## &[]]]

```

which yields

[![enter image description here](https://i.stack.imgur.com/fN02U.png)](https://i.stack.imgur.com/fN02U.png)

What I want is

[![enter image description here](https://i.stack.imgur.com/iw0MM.png)](https://i.stack.imgur.com/iw0MM.png)

but I'm getting

[![enter image description here](https://i.stack.imgur.com/MNttc.png)](https://i.stack.imgur.com/MNttc.png)

Surprisingly enough, using `Grid` in the following manner solves my problem

```
Manipulate[x, Dynamic@Grid[{
    {"", Control[{{x, 0}, {1, 0}}]},
    If[x == 0, {"", Control[{{y, 0}, {1, 0}}]}, ## &[]]}]]

```

Any idea why? How do I fix my code?