Visual Studios 2005 - 在设计器/属性窗口中清除自定义属性

时间:2009-01-13 11:12:14

标签: c# visual-studio-2005 compact-framework .net-2.0 c#-2.0

早上好,

我已经创建了一个带有图像属性的自定义控件。该图像属性是获取/设置为私有Image变量。

有谁能告诉我如何启用get / set来清除设计器中的属性?

即。如果我将图像添加到标准PictureBox,我可以点击Del来清除PictureBox中的图像。如何在我自己的自定义控件上复制此行为?

1 个答案:

答案 0 :(得分:3)

在最简单的层面上,DefaultValueAttribute应该完成这项工作:

private Bitmap bmp;
[DefaultValue(null)]
public Bitmap Bar {
    get { return bmp; }
    set { bmp = value; }
}

对于更复杂的方案,您可能想尝试添加Reset方法;例如:

using System;
using System.Drawing;
using System.Windows.Forms;
class Foo {
    private Bitmap bmp;
    public Bitmap Bar {
        get { return bmp; }
        set { bmp = value; }
    }
    private void ResetBar() { bmp = null; }
    private bool ShouldSerializeBar() { return bmp != null; }
}
static class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Form form = new Form();
        PropertyGrid grid = new PropertyGrid();
        grid.Dock = DockStyle.Fill;
        grid.SelectedObject = new Foo();
        form.Controls.Add(grid);
        Application.Run(form);
    }
}