2012-07-10 99 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