C# 哪个属性存储GroupBox包含的控件?
我有一个GroupBox控件,里面有一堆控件,但是当我使用.controls属性时,它是空的 是否存在存储这些控件的其他属性 编辑:以下是分组框代码:C# 哪个属性存储GroupBox包含的控件?,c#,.net,winforms,C#,.net,Winforms,我有一个GroupBox控件,里面有一堆控件,但是当我使用.controls属性时,它是空的 是否存在存储这些控件的其他属性 编辑:以下是分组框代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using Sys
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace CustomControls
{
public partial class CustomGroupBox : GroupBox
{
public CustomGroupBox ( )
{
this.OutlineColor = Color.FromArgb ( 5, 5, 5 );
this.Font = new Font ( "Tahoma", 8.25F, FontStyle.Regular );
}
Color outlineColor;
[DefaultValue ( typeof ( Color ), "5, 5, 5" )]
public Color OutlineColor
{
get { return outlineColor; }
set { outlineColor = value; Invalidate ( ); }
}
[DefaultValue ( typeof ( Font ), "Arial, 8.25pt" )]
public override Font Font
{
get { return base.Font; }
set { base.Font = value; }
}
protected override void OnPaint ( PaintEventArgs pe )
{
//painting
}
}
}
您确定在检查属性时已添加控件吗?GroupBox在controls属性中存储子控件,就像任何其他容器控件一样 编辑 我真的不能开始推测自定义控件。很明显,用您描述的行为创建一个控件是可能的,但我无法理解其原因。只需创建一个示例Windows窗体项目,并将两个按钮拖动到其中,然后从另一个按钮调用MessageBox.ShowgroupBox1.Controls.Count.ToString,就会显示一个2,正如预期的那样 考虑到您为GroupBox发布的代码,除了控件真正不在GroupBox中之外,我看不出发生这种情况的任何原因。如果检查其中一个控件的父属性,值是多少 编辑2 如果您说您有一个包含自定义GroupBox的UserControl,并且您试图将UserControl放在表单上,然后将控件放在GroupBox中,那么这是行不通的。表单上的设计器只知道UserControl;它不知道也不关心它是否包含一个GroupBox,一方面,默认情况下,设计器无权访问该变量,您也无权访问,因为它是私有的,除非您显式更改修饰符
为了完全按照您的意愿完成这项工作,您必须进行必要的提升,以使您的用户控制一个容器,但这是一项非常重要的工作。我建议直接将GroupBox放在表单上。我看到控件属性填充在我的GroupBox中。然后只需grpMyGroupBox.Controls.Itemindex.Name即可获得控件的名称。没有什么意义,为什么你在那里看不到它们。是的,我在设计器中添加了它们,并在组框的单击事件中访问它们。但这是一个来自标准groupbox的自定义控件,也许这就是为什么?当我移动groupbox时,所有的控件也会移动。好吧,这很奇怪。my groupbox中控件的父控件返回表单本身,而标准组中的其他控件返回该组。我不知道出了什么问题,所以我将尝试使用一个没有代码的新自定义groupbox。另一个更新:我刚刚用我的自定义groupbox进行了尝试,结果成功了,好吗?我在复合控件中使用了groupbox,但它不起作用。复合控件不起作用有什么原因吗?好的,当我移动复合控件时,包含的控件不会移动。因此,分组功能似乎消失了。