2014-09-24 18 views
1

被加載我有一個C#WinForms應用。我已將DataGridView擴展爲還包含ContextMenuStrip組件。事件時,所有的DataGridView參數已經在設計師

ContextMenuStrip將根據DataGridView的其他參數進行初始化,例如AllowUserToAddRows。最初,我嘗試在構造函數中這樣做,但問題在於設計器在實例化DataGridView後逐個加載這些參數,以使它們在構造函數中不可用。

我怎麼能知道我的擴展DataGridView中當設計師已經完成設置DataGridView的屬性?一旦完成,可能會觸發一個事件嗎?

+0

[Initialized事件說只是一個元素被創建,其性能已經全部設置...](http://blogs.msdn.com/b/mikehillberg/archive/2006/09/19/loadedvsinitialized .aspx) – 2014-09-24 12:44:17

+0

我使用WinForms,而不是WPF,所以不會這樣做。 – 2014-09-24 12:59:03

回答

0

我不知道的事件,但一個解決方法是將一個屬性添加到名爲擴展控制ZZInitialized這樣的:

private bool _ZZInitialized = true; 

    [DefaultValue(false)] 
    public bool ZZInitialized 
    { 
     get 
     { 
      return _ZZInitialized; 
     } 
     set 
     { 
      _ZZInitialized = value; 
      //Do what you need to do after all other properties are set. 
     } 
    } 

當所有之前按字母順序出現的其他屬性被調用,設計師代碼調用這一個,我可以執行我自己的代碼。

請注意,事件是在設計器代碼中添加的。

相關問題