Как я могу получить OpenFileDialog в сетке свойств пользовательского элемента управления?
-
05-07-2019 - |
Вопрос
Я создаю пользовательский элемент управления .net, и он должен иметь возможность загружать несколько текстовых файлов.У меня есть общедоступное свойство с именем ListFiles со следующими установленными свойствами:
[Browsable(true), Category("Configuration"), Description("List of Files to Load")]
public string ListFiles
{
get { return m_oList; }
set { m_oList = value; }
}
В зависимости от типа объекта (строка, строка[], Список,...) сетка свойств позволяет пользователю вводить некоторые данные.Моей целью было бы иметь отфильтрованное диалоговое окно openfiledialog в сетке свойств моего компонента, которое позволило бы пользователю выбирать несколько файлов и возвращать их в виде массива или строки (или чего-то еще...).
Оооо...Вот мой вопрос: Как я могу получить OpenFileDialog в сетке свойств пользовательского элемента управления?
Большое спасибо!
Решение
Вы можете сделать это, добавив UITypeEditor . р>
Вот пример UITypeEditor, который дает вам OpenFileDialog для выбора имени файла.
Другие советы
Вы можете использовать встроенный UITypeEditor. Он называется FileNameEditor
[EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
public string SomeFilePath
{
get;
set;
}
Вот еще один пример настройки диалогового окна файла:
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"; ;
}
}
}
Использование :
[Category("Settings"), DisplayName("Project File:")]
[EditorAttribute(typeof(CustomFileBrowser), typeof(System.Drawing.Design.UITypeEditor))]
public string Project_File { get; set; }