Frage

Ich bin ein .net-Steuerelement erstellen und es sollten mehrere Textdateien laden können. Ich habe einen öffentliche Eigenschaft mit dem Namen Listfiles mit diesen Eigenschaften festgelegt:


[Browsable(true), Category("Configuration"), Description("List of Files to Load")]
public string ListFiles
  {
     get { return m_oList; }
     set { m_oList = value; }
  }

von der Art des Objekts abhängig, (string, string [], List, ...), wird das Eigenschaftenraster ermöglicht es dem Benutzer einige Daten eingeben .. Mein Ziel einen gefiltertes Openfiledialog im Eigenschaft-Grid zu haben wäre meiner Komponente, die den Benutzer auf mehrere Dateien auswählen und senden sie es als ein Array oder String (oder etwas anderes ...).

würde es ermöglichen,

Sooo ... Hier ist meine Frage: Wie kann ich einen Openfiledialog in einem eigenen Kontroll Eigentum Gittern erhalte

Vielen Dank!

War es hilfreich?

Lösung

Sie können dies tun, indem Sie einen UITypeEditor .

ist ein Beispiel eines UITypeEditor, dass Sie die Openfiledialog für chossing einen Dateinamen gibt.

Andere Tipps

Sie können mit integrierten in UITypeEditor. Es heißt FileNameEditor

[EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]

public string SomeFilePath
{
 get;
 set;
}

Hier ist ein weiteres Beispiel kommt mit Customizing-Datei 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"; ;
        }
    }

}

Verwendung:

            [Category("Settings"), DisplayName("Project File:")]
            [EditorAttribute(typeof(CustomFileBrowser), typeof(System.Drawing.Design.UITypeEditor))]
            public string Project_File { get; set; }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top