كيف يمكنني الحصول على openfiledialog في شبكة خاصية تحكم مخصص؟

StackOverflow https://stackoverflow.com/questions/170791

سؤال

أقوم بإنشاء عنصر تحكم مخصص .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; }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top