代码之家  ›  专栏  ›  技术社区  ›  Joan Venge

复合控制的透明度?

  •  0
  • Joan Venge  · 技术社区  · 15 年前

    我有一个包含GroupBox控件的复合控件。问题在于,它覆盖了放置在此复合控件之上的控件。即使我将新控件发送到顶部,它们也应该是可见的,但它们不是。

    当我只使用GroupBox时,当然它是通过一些东西显示的,所以您可以看到包含的控件,这些控件只是由GroupBox概述的。

    我应该做些什么来在复合控件中获得相同的效果/行为吗?

    编辑:左侧在设计器中显示控件,右侧在运行时显示控件。

    alt text http://i38.tinypic.com/dxdc2f.png

    2 回复  |  直到 13 年前
        1
  •  0
  •   Joan Venge    13 年前

    可能Quintin是对的,你的控件的设计支持出了问题,也就是说,你已经创建了ControlA,并在设计时通过添加一个按钮将其扩展到ControlB。当您设置controlb时,按钮不可见。

    您能否在运行时使用断点/断言等验证:`

    1. ChildButton 存在。
    2. 儿童按钮 是一个成员 CompositeControl.Controls .
    3. 儿童按钮 位置是的“视图” CompositeControl .
    4. 儿童按钮 是可见的。

    如果是我,我会在控件的构造函数中设置一个断点,然后进入 InitializeComponent() ,检查是否正确创建和添加了所有内容。如果 儿童按钮 存在,并且在 复合控制装置 而且它的位置在视野中,所以我很难解释它为什么没有出现。

        2
  •  0
  •   Quintin Robinson    15 年前

    如果您的意思是希望自定义控件的行为类似于容器(就像GroupBox通常那样),那么您需要让控件和设计器知道应该如何处理它。

    记住执行 IContainerControl 并用设计器容器支持的适当设计器属性来修饰对象,即:

    [Designer("System.Windows.Forms.Design.ParentControlDesigner,System.Design", typeof(System.ComponentModel.Design.IDesigner))]