如何从属性网格节点获取父表单名称? C#

时间:2012-07-10 13:36:08

标签: c# winforms propertygrid

我有一个属性网格,它托管在普通的winForm上。在属性网格中,我有一个节点。在一个节点中,我有一个下拉项列表。当用户选择特定值时,我希望能够加载从继承方法调用的预先存在的对话框。我需要将Parent IWin32Window传递给方法。有没有办法从我的属性网格节点属性获取父窗口的实例名称?

我正在使用PromptandCreateVariable方法,该方法是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
        }
    }
 }

2 个答案:

答案 0 :(得分:1)

我通过在我的类中创建一个IWin32Window实例并将其传递给PromptAndCreateVariable方法来解决这个问题。

答案 1 :(得分:0)

如果你有一个控件然后调用Control.FindForm(),但你也可以从Form.ActiveForm

获取活动表单