none
Panel控件中添加窗体 RRS feed

  • 问题

  • panel.Controls.Add(form1);

    panel.Controls.Add(form2);

    在PANEL中添加了N个窗体,我想获取PANEL中当前活动的窗体,应该怎么实现啊?

    可不可获取PANEL中当前Z顺序最高的那个窗体呢?有没Z顺序这个属性哦。?

    2010年5月19日 9:20

答案

  • 有 z 顺序,子控件在集合 panel.Controls 中的索引即是其 z-order,0 表示最上层

    panel.Controls.GetChindIndex(someControl); 获取

    panel.Controls.setChindIndex(someControl, 0); 设置


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    • 已标记为答案 潇洒草 2010年5月20日 5:14
    2010年5月20日 2:29

全部回复

  • 活动窗体,是当前出现在屏幕最上层的并且具备默认焦点的窗体,

    所以,可以用集合来找:

    panel.Controls.SingleOrDefault(form => form.Visible = true && form.HasFocus)


    Mark Zhou
    2010年5月19日 9:36
  • 你好!

         你的代码:

    panel.Controls.Add(form1);

    panel.Controls.Add(form2);

         应该在运行的时候抛出异常的:

         ”无法将顶级控件添加到控件“!


    周雪峰
    2010年5月19日 10:35
    版主
  • 有 z 顺序,子控件在集合 panel.Controls 中的索引即是其 z-order,0 表示最上层

    panel.Controls.GetChindIndex(someControl); 获取

    panel.Controls.setChindIndex(someControl, 0); 设置


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    • 已标记为答案 潇洒草 2010年5月20日 5:14
    2010年5月20日 2:29
  • GetChindIndex()的确可以获得最上层的子控件;

    问题已经解决!!

    谢谢,

    2010年5月20日 5:14