我有一个自定义控件,其中一个属性是:
public List<SelectionBox> Boxes { get; set; }
在控制构造函数中,我有:
this.Boxes = new List<SelectionBox>();
this.Boxes.Add(new SelectionBox("", Color.Red));
在 InitializeComponent() 之前,如果我在此处设置断点,则表明 Boxes 是具有 1 个元素的 SelectionBox 列表。但是在我的 OnPaint 覆盖内部,如果我执行以下操作,它已被设置为 null 并出现一些奇怪的行为:
foreach (SelectionBox box in Boxes) {}
它不会抛出错误,它只是在那里退出函数。我究竟做错了什么?
选择框结构:
[Serializable]
public struct SelectionBox
{
public string Name;
public Color Colour;
public Rectangle BoxRectangle;
public bool IsActive;
public SelectionBox(string name, Color colour)
{
this.Name = name;
this.Colour = colour;
this.IsActive = false;
this.BoxRectangle = new Rectangle(0, 0, 0, 0);
}
}