2012-07-10 64 views
1

我有一個屬性網格託管在一個正常的winForm。在屬性網格中我有一個節點。在一個節點中,我有一個下拉項目列表。當用戶選擇一個特定的值時,我希望能夠加載從繼承方法調用的預先存在的對話框。我需要將父IWin32Window傳入該方法。有沒有辦法從我的屬性網格節點屬性獲取父窗口的實例名稱?如何從屬性網格節點獲取父表單名稱? C#

我正在使用PromptndCreateVariable方法,它是IDTSVa​​riableService接口的一部分。

我到目前爲止的代碼是:

private IServiceProvider _sp = null;        

public IServiceProvider ServiceProvider 
{ 
    get { return _sp; } 
    set { _sp = value; } 


    [Category("Local Path"), 
    Description("Specifies local Path")] 
    public Variable LocalPath 
    { 
     get 
     { 
      //do something 
      IDtsVariableService _dtsVariableService = 
       _sp.GetService(typeof(IDtsVariableService)) as IDtsVariableService; 

      Variable newVariable = 
       _dtsVariableService.PromptAndCreateVariable(
        this, null, "LocalPath", "User", typeof(string)); 
     } 
     set 
     { 
      //do something 
     } 
    } 
} 
+1

這聽起來像是你真的不應該在_getter_中做的事情。 – SLaks 2012-07-10 13:39:33

+0

這是什麼類? – SLaks 2012-07-10 13:40:01

+0

節點是用戶控件內部類的一部分。用戶控件是屬性網格中的視圖。我只是意識到它應該在吸氣者之內。我改變了這一點。我仍然需要獲取父窗體。 – zeencat 2012-07-10 13:48:28

回答

1

我得到有效形式通過在我的類中創建一個IWin32Window實例並將其傳遞給PromptAndCreateVariable方法來解決此問題。

0

如果你有一個控制,然後調用Control.FindForm(),但你也可以從Form.ActiveForm