1

我有一个托管在普通 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
        }
    }
 }
4

2 回答 2

1

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

于 2012-07-11T20:29:51.693 回答
0

如果您有控件,则调用 Control.FindForm(),但您也可以从 Form.ActiveForm 获取活动表单

于 2012-07-10T13:45:01.397 回答