Reputation: 42316
I'm creating a .net custom control and it should be able to load multiple text files. I have a public property named ListFiles with those properties set :
[Browsable(true), Category("Configuration"), Description("List of Files to Load")]
public string ListFiles
{
get { return m_oList; }
set { m_oList = value; }
}
Depending upon the type of object, (string, string[], List, ...), the property grid will allow the user to enter some data.. My goal would be to have a filtered openfiledialog in the Properties Grid of my component that would enable the user to choose multiple files and return it as an array or string (or something else...).
Sooo... Here's my question : How can I get an OpenFileDialog in a custom control's property grid?
Thanks a lot!
Upvotes: 12
Views: 11896
Reputation:
Here's another example comes with customizing File Dialog :
CustomFileEditor.cs
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"; ;
}
}
}
Usage :
[Category("Settings"), DisplayName("Project File:")]
[EditorAttribute(typeof(CustomFileBrowser), typeof(System.Drawing.Design.UITypeEditor))]
public string Project_File { get; set; }
Upvotes: 2
Reputation: 1339
You can do this by adding a UITypeEditor.
Here is an example of a UITypeEditor that gives you the OpenFileDialog for chossing a filename.
Upvotes: 11
Reputation: 171
You can use built-in UITypeEditor. It is called FileNameEditor
[EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
public string SomeFilePath
{
get;
set;
}
Upvotes: 17