wolf5 Skrevet 1. desember 2006 Del Skrevet 1. desember 2006 Noen som har lekt seg med avanserte properties for UserControls? Det er lett å legge til enkle variabler som string, bool, enums osv, men hva gjør man om man ønsker å kunne legge til en fil? Enten ved å browse frem stien og la stien være verdien eller helst å få opp Resources boksen hvor man kan importere filen. Jeg har behov for dette ifm en egen UserControl som skal være knyttet opp mot en XML. Noen som har peiling? Lenke til kommentar https://www.diskusjon.no/topic/673946-usercontrol-design-time-props-hvordan-velge-fil/
GeirGrusom Skrevet 4. desember 2006 Del Skrevet 4. desember 2006 (endret) Dette gjøres med Attributes, den du ser etter heter System.Windows.Forms.Design.FileNameEditor jeg har brukt den i mitt program til å finne fram bilder, men for å beholde filnavnet (istedet for å bruke Image) Eksempel: class ImageFileEditor : System.Windows.Forms.Design.FileNameEditor { protected override void InitializeDialog(System.Windows.Forms.OpenFileDialog openFileDialog) { base.InitializeDialog(openFileDialog); openFileDialog.Filter = "All supported formats|*.bmp;*.jpg;*.gif;*.png;*.wmf;*.emf|Windows Bitmap (*.bmp)|*.bmp|Joint Photographers Expert Group (*.jpg)|*.jpg|Graphics Interchange Format (*.gif)|*.gif|Portable Network Graphics (*.png)|*.png|Windows Metafile (*.wmf)|*.wmf|Enhanced Windows Metafile (*.emf)|*.emf|All files (*.*)|*.*"; } } Og på egenskapen XMLFile (f.eks.) legger du til [system.ComponentModel.Editor(typeof(XmlFileEditor), typeof(System.Drawing.Design.UITypeEditor))] som en attribut, et voila! Endret 4. desember 2006 av GeirGrusom Lenke til kommentar https://www.diskusjon.no/topic/673946-usercontrol-design-time-props-hvordan-velge-fil/#findComment-7423708
wolf5 Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 Takker. Fant også noe annet for custom editor: Usercontrollen med en property RectWidth public partial class MyUserControl : UserControl { int rectwidth = 0; [Description("Tada"), Editor(typeof(SelectXml), typeof(UITypeEditor))] public int RectWidth { get { return this.rectwidth; } set { if (value > 0) { this.rectwidth = value; this.Invalidate(); } } } } Støtteklassen for å lage en loddrett Trackbar når man trykker på property. public partial class SelectXml : System.Drawing.Design.UITypeEditor { public SelectXml() { } //Sørger for at det er en dropdown i properties menyen public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.DropDown; } public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { //use IWindowsFormsEditorService object to display a control in the dropdown area IWindowsFormsEditorService frmsvr = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if(frmsvr == null) return null; TrackBar tbr = new TrackBar(); tbr.Orientation = Orientation.Vertical; tbr.Size = new Size(60,120); tbr.TickFrequency = 50; tbr.SetRange(10,300); frmsvr.DropDownControl(tbr); return tbr.Value; } } Lenke til kommentar https://www.diskusjon.no/topic/673946-usercontrol-design-time-props-hvordan-velge-fil/#findComment-7428816
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå