Blocks in layer1 is reflected in the layer2

I have four layers in a GoDocument. It is hierarchially structured like level1, level2, level3 and level4. level 1 is the parent of level2 , level2 is the parent of level3 and so on. ( we use .net framework2.0 and Windows XP professional)
I drag the blocks in the level1 to a position such that the vertical and horizantal scrollbars appear. I repeat the drags more than one times
I refresh the document and the blocks resume to their original positions.(In the refresh event we revert the changes made) Now i select a block; move down to the next level by double clicking the object.(In the double click event of the Goview, we load/add only child blocks to the next level) I see that the block/blocks present in the level1 are displayed in the level2.(issue 1) When i select the parent block present in the level2 i get an unhandledexception:"Selected objects must belong to the view or its document" which is obvious as it has not been loaded in the child level. My Goview document size is Size(759, 481) I wanted to know why the issue1 is raised and the solution to fix this problem.
Does the presence or absence of scrollbars, or the size of the document, make any difference to your issue? (I would think not.)
Could you describe more precisely what you do when the user double-clicks a block?
The issue is not due to the presence of scrollbars or document size..
As i have mentioned there are four layers..
For example we have a site block and its child blocks are processes.
When i double click on the site object present in level1, we load only the child blocks(i.e process blocks) in the next level i.e level2
The issue mentioned is raised in the specific scenario explained above and not always.The issue is raised onlly when the selected objects are dragged.

Is your document refresh required before you get the exception?

If so, how do you implement that refresh?


In the refresh implementation, we reload the data from the collection object that holds the properties of the objects like the blocks width and height, its loaction, name of the block etc...

but once i maximize/minimize my application form or move the scrollbars inthe document , the block disappears…

OK, so the problem is in the “refresh” implementation. Please check that you are creating your blocks and adding them to layers that belong to your document being displayed by your view.

Just for fun, I created this sample application:
But that doesn't do anything about refreshing, since a few minutes ago I didn't know to focus there.
You can add support for undo/redo by just adding this initialization statement:
goView1.Document.UndoManager = new GoUndoManager();

I included the initialization statement which u mentioned…but its not working.

As i mentioned, the refresh code contains only the physical details of the block. After refreshing the values, we actually load the blocks to the view.
Before loading , we clear all blocks on the view using Document.Clear();
There is no issue in the refresh code.when i drag the objects to some extent,refresh and goto the next level the issue(block/blocks present in the level1 are displayed in the level2) is not raised..
But if i drag to more extent and refresh and double click on the object then the issue is raised..
I feel that when we drag the blocks to the extreme positions of the document, the dimensions are changed.. once we refresh the document size is not reverted to the original size..This is my assumption only..not the reason..

You still haven’t described precisely what happens when the user double-clicks on a node. Are you making some layers visible / invisible? Are you adding new objects on other layers? What happens when the user double-clicks the same node several times?

Regarding the document size, you can always save and restore the GoDocument.Size and GoDocument.TopLeft property values.
For an instance, consider a Parent block(object) , it has four children.
Parent object is placed in the first layer. When the Parent object is double clicked, the four children are added to the next layer, in this opertaion the Parent object layer is made invisible and also the parent object.
Yes. We are making layers visible/invisible.
When an object is double clicked, immediately it goes to the next level.There are no chances for frequent double-clicks on the object.

OK, I have updated to demonstrate what I think you want to do. It just creates one child per node, though. There are CheckBoxes so you can show/hide each GoLayer. I have added a link from each parent Block to its child Block, for clarity.