2009-01-13 65 views
1

早上全部,Visual Studios 2005 - 在設計器/屬性窗口中清除自定義屬性

我已經使用圖像屬性創建了自定義控件。該圖像屬性是獲取/設置爲私有圖像變量。

任何人都可以告訴我如何啓用獲取/設置以清除設計器的屬性?

I.e.如果我添加一個圖像到一個標準的PictureBox,我可以打Del來清除PictureBox中的圖像。我如何在我自己的自定義控件上覆制這種行爲?

+0

「世界範圍」的網絡上沒有早晨,也沒有上午,晚上或晚上。 – AnthonyWJones 2009-01-13 11:13:42

回答

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); 
    } 
}