カスタムコントロールのプロパティグリッドで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; }
}
オブジェクトのタイプ(string、string []、List、...)に応じて、ユーザーはプロパティグリッドを使用してデータを入力できます。ユーザーが複数のファイルを選択し、配列または文字列(または他の何か...)としてそれを返すことができるようにする私のコンポーネントの。
すみません...私の質問です:カスタムコントロールのプロパティグリッドでOpenFileDialogを取得するにはどうすればよいですか
どうもありがとう!
解決
これを行うには、 UITypeEditor を追加します。
他のヒント
組み込みの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; }
所属していません StackOverflow