C#
public class CustomFileNameEditor : UITypeEditor
{
public CustomFileNameEditor()
{
}
private string _customFilter = "My files(*.dxf)|*.dxf";
[DefaultValue("My files(*.dxf)|*.dxf")]
public string CustomFilter
{
get { return _customFilter; }
set { _customFilter = value; }
}
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
// We'll show modal dialog (OpenFileDialog)
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
using (OpenFileDialog dialog = new OpenFileDialog())
{
dialog.Filter =
this.CustomFilter;
if (dialog.ShowDialog() == DialogResult.OK)
value = dialog.FileName;
}
return value;
}
}