代码之家  ›  专栏  ›  技术社区  ›  Gad

如何在自定义控件的属性网格中获取OpenFileDialog?

  •  7
  • Gad  · 技术社区  · 16 年前

    
    [Browsable(true), Category("Configuration"), Description("List of Files to Load")]
    public string ListFiles
      {
         get { return m_oList; }
         set { m_oList = value; }
      }
    

    根据对象的类型,(字符串,字符串[],列表,…),属性网格将允许用户输入一些数据。。我的目标是在我的组件的属性网格中有一个经过过滤的openfiledialog,使用户可以选择多个文件并将其作为数组或字符串(或其他…)返回。

    所以。。。我的问题是:

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  16
  •   user807566    13 年前

    您可以使用内置的UITypeEditor。它被称为 FileNameEditor

    [EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
    
    public string SomeFilePath
    {
     get;
     set;
    }
    
        2
  •  11
  •   nzeemin Cory    8 年前
        3
  •  2
  •   user11043757 user11043757    5 年前

    下面是自定义文件对话框的另一个示例:

    using System.Windows.Forms;
    using System.Windows.Forms.Design;
    
    namespace YourNameSpace
    {
        class CustomFileBrowser : FileNameEditor
        {
            protected override void InitializeDialog(OpenFileDialog openFileDialog)
            {
                base.InitializeDialog(openFileDialog);
                openFileDialog.Title = "Select Project File : ";
                openFileDialog.Filter = "Project File (*.proj)|*.proj"; ;
            }
        }
    
    }
    

    用法:

                [Category("Settings"), DisplayName("Project File:")]
                [EditorAttribute(typeof(CustomFileBrowser), typeof(System.Drawing.Design.UITypeEditor))]
                public string Project_File { get; set; }