早上好,
我已经创建了一个带有图像属性的自定义控件。该图像属性是获取/设置为私有Image变量。
有谁能告诉我如何启用get / set来清除设计器中的属性?
即。如果我将图像添加到标准PictureBox,我可以点击Del来清除PictureBox中的图像。如何在我自己的自定义控件上复制此行为?
答案 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);
}
}