zoukankan      html  css  js  c++  java
  • Winform中的parent和owner属性

    在研究父子窗口如何进行通讯,相互调用,涉及到了“指针”,经过一番考古,找到了以下内容

    一般的方法是这样的:

    建立一个带参数的form构造函数以及一个成员变量,在form实例化时将父窗口的“指针”传给子窗口,然后再使用。

    下面说说新的考古发现:

    winform:

      包含Form owner和Control parent两个属性,前一个表示父窗口,是form特有的属性,后一个是表示控件的父窗口,是control中的属性;

      继承自ContainerControl,间接继承自control;

      动态只用中(new),在构造函数中,两者都是null;

      动态只用中(new),在load的函数中,两者都是null

      动态只用中(new),两者都需要使用者赋值,系统不会自动指定;

      是否指定owner的区别:在子窗口可以最小化的情况下测试:ShowDialog(Model)是没什么区别,父窗口都会随之最小化,但在Show(Modeless)中,指定了owner之后,子窗口最小化之后,仍然停留在父窗口的上层,可以正常恢复等,但如果没有指定,则会因为失去活动焦点而被放在后台。

    MSDN上的引文

    获取或设置拥有此窗体的窗体。若要使某窗体归另一个窗体所有,请为其 Owner 属性分配一个对将成为所有者的窗体的引用。当一个窗体归另一窗体所有时,它便随着所有者窗体最小化和关闭。例如,如果 Form2 归窗体 Form1 所有,则关闭或最小化 Form1 时,也会关闭或最小化 Form2。并且附属窗体从不显示在其所有者窗体后面。可以将附属窗体用于查找和替换窗口之类的窗口,当选定所有者窗体时,这些窗口不应消失。若要确定某父窗体拥有的窗体,请使用OwnedForms属性。


    UserControl:

      包含Control parent一个属性,表示控件的父窗口;

      继承自control;

      静态使用中(作为form中的控件),在构造函数中,是null;

      静态使用中(作为form中的控件),在load的函数中,被赋值为父窗口

      静态使用中(作为form中的控件),系统会自动赋值;


  • 相关阅读:
    再次梳理css3动画部分知识
    node搭环境
    微信小程序可用的第三方库
    省市区三级联动下拉框效果分析
    jq回到顶部效果分析
    jq案例中遇到的知识点总结(会飞的小鸟和三级联动)
    js正则表达式大全
    js中表达式 >>> 0 浅析
    为什么js中要用void 0 代替undefined
    npm install、npm install --save、npm install --save --dev、npm install -S、npm install -D的区别
  • 原文地址:https://www.cnblogs.com/kevinzhwl/p/1757634.html
Copyright © 2011-2022 走看看