如何在Winfors(C#)中检索表单的z索引?

如何在Winfors(C#)中检索表单的z索引?,c#,winforms,z-index,z-order,C#,Winforms,Z Index,Z Order,我正在使用Winforms(C#)开发一个应用程序。我正在创建多个相同形式的广告实例,然后存储它们的位置和大小等。我唯一缺少的是保存它们的z索引,然后恢复它们以重新创建以前打开的窗口。我提前感谢你的帮助。下面是一些代码示例:首先,我浏览打开的窗口,并通过更新计数器将自定义对象存储在XML文件中。此自定义对象具有与窗口的不同属性(如位置、背景色、大小、位置等)相对应的字段。之后,我从XML文件中读取以重新创建自定义对象,并执行以下操作: main.Size = note.S

我正在使用Winforms(C#)开发一个应用程序。我正在创建多个相同形式的广告实例,然后存储它们的位置和大小等。我唯一缺少的是保存它们的z索引,然后恢复它们以重新创建以前打开的窗口。我提前感谢你的帮助。下面是一些代码示例:首先,我浏览打开的窗口,并通过更新计数器将自定义对象存储在XML文件中。此自定义对象具有与窗口的不同属性(如位置、背景色、大小、位置等)相对应的字段。之后,我从XML文件中读取以重新创建自定义对象,并执行以下操作:

            main.Size = note.Size;
            main.Location = note.Location;
            main.richTextArea.Text = note.UserInputText;
            main.richTextArea.BackColor = note.BackgroundColor;
            main.WindowState = (FormWindowState)Enum.Parse(typeof(FormWindowState), note.WindowState);
            main.Controls.SetChildIndex (main.richTextArea ,note.Z_Order.Value);

注意,我不想要表单子级的z索引。我想要包含子项的主窗体的z索引。

您尝试了什么?发布一些代码,展示自己解决问题的努力,请用您尝试过的示例更新您的问题?每当用户关闭窗口时,我都会通过打开的窗口存储z索引,并在由计数器创建的对象中存储z索引:
z_Order=counter++
,然后我从XML文件中检索存储的对象,并执行以下操作:
main.Controls.SetChildIndex(main.richTextArea,note.Z_Order.Value)通过阅读本文,我了解到您希望保存并恢复
表单
s的z索引,但您共享的代码似乎恢复了
控件
的z索引。您试图实现什么?要恢复windows z顺序,可以使用BringToFront或SendToBack方法。要保存Z顺序,请通过调用user32.dll的GetWindow函数来获取它。首先调用以获取TopWindow(GW_HWNDFIRST=0),然后在nextwindow上循环(GW_hwndnnext=2)。识别窗口并删除那些不属于您的应用程序的窗口。@C.Evenhuis tnx供您回复。你是对的,我想要表单的z索引。我试着使用我展示的代码,但它不起作用。