1
早上全部,Visual Studios 2005 - 在设计器/属性窗口中清除自定义属性
我已经使用图像属性创建了自定义控件。该图像属性是获取/设置为私有图像变量。
任何人都可以告诉我如何启用获取/设置以清除设计器的属性?
I.e.如果我添加一个图像到一个标准的PictureBox,我可以打Del来清除PictureBox中的图像。我如何在我自己的自定义控件上复制这种行为?
早上全部,Visual Studios 2005 - 在设计器/属性窗口中清除自定义属性
我已经使用图像属性创建了自定义控件。该图像属性是获取/设置为私有图像变量。
任何人都可以告诉我如何启用获取/设置以清除设计器的属性?
I.e.如果我添加一个图像到一个标准的PictureBox,我可以打Del来清除PictureBox中的图像。我如何在我自己的自定义控件上复制这种行为?
最简单地说,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);
}
}
“世界范围”的网络上没有早晨,也没有上午,晚上或晚上。 – AnthonyWJones 2009-01-13 11:13:42