1. The control does not currently support selection across different Nodes collections.
2. The control exposes a GetNodeFromPoint method; you can call this method before displaying you dialog, and only display it if the return from the method is non-null. Note that the method takes client coordinates, so if you call it from the DoubleClick event and get the current cursor position, you would have to convert that point to the control's coordinate system first (using UltraTree.PointToClient).