eigenes Steuerelement

paranoid_2

Grünschnabel
Hi,

mein Problem:
Ich will ein eigenes Steuerelement erstellen (Combobox mitzusätzlichen Buttons).
Zur Entwurfszeit besitzt das Combobox-Objekt unter "Eigenschaften -> Items" einen Zeichenfolgen-Editor. Wenn ich jetzt aber mein eigenes Steuerelement in eine Form ziehe, kommt under "Eigenschaften -> Items" kein Zeichenfolgen-Editor, sondern der Object-Auflistungs-Editor.

Wie schaffe ich es das mein eigenes Steuerelement den Zeichenfolgen-Editor besitzt und nicht den Object-Auflistungs-Editor?

Ich hab gelesen das man mit "EditorAttribute" arbeiten muss, aber wie und was muss ich da einstellen?

Hab mal meinen bisweiligen Code gepostet:
C#


Code:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace ComboboxPlus
{
    public class ComboboxPlus : System.Windows.Forms.UserControl
    {
        private System.Windows.Forms.Button b_links;
        private System.Windows.Forms.Button b_rechts;
        private System.Windows.Forms.Label lbl_suchen;
        private System.ComponentModel.Container components = null;
        private System.Windows.Forms.ComboBox cb_items;

        public ComboboxPlus()
        {
            InitializeComponent();
        }

        // Eigenschaft -> Text

        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public override string Text
        {
            get
            {
                return this.cb_items.Text;
            }
            set
            {
                this.cb_items.Text = value;
            }
        }

        // Eigenschaft -> Items

        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        [Category("Data")]
        public ComboBox.ObjectCollection Items
        {
            get
            {
                return this.cb_items.Items;
            }
        }
                .....
    }
}
 
Hi!

Hab jetzt leider nicht die Zeit das mal zu testen. Aber ich hätte da ein paar Brocken Pseudocode für Dich.

C#:
public class ObjectCollectionEditor : CollectionEditor
{
	public ObjectCollectionEditor ( Type type ) : base( type ) {}

	protected override Type CreateCollectionItemType() {
		return typeof (Object);
	}
}

[Category("Data"), Editor( typeof (ObjectCollectionEditor), typeof (UITypeEditor) )]
public ComboBox.ObjectCollection Items {
	get { return this.cb_items.Items; }
	set { this.cb_items.Items = value; }
}
Meld Dich halt nochmal, wenn Du damit nicht weiter kommst.
Ich mach in dem Fall dann morgen mal eine Demo.
Kannst Dich in der Zwischenzeit mal auf TheCodeProject umschauen. Da gibt es Etliches zum Thema Controls. :)
Links findest in meiner Sig!

//Edit: Hab sogar was brauchbares gefunden: How to Edit and Persist Collections with CollectionEditor
 
Zuletzt bearbeitet:
@Christian Kusmanow

ist zwar nicht 100% das was ich wollte, aber ("das Leben ist kein Wunschkonzert") ein sehr guter Anfang wo ich weiter arbeiten kann.

Ich hab die Frage auch mal in andere Foren geschrieben und die konnten mir überhaupt nicht helfen. Du bist der erste der mir wenigstens einen Anhaltspunkt gibt, wie ich an die Sache herangehen soll.

Danke auch für den Link. Hab mal so grob drüber geschaut komme damit eigentlich klar. Konnte es aber noch nicht in mein Steuerelement integrieren; hab zur Zeit sehr viel zu tun.

Also dank noch mal.
 
Danke, hört man gerne wenn man helfen konnte. :)
Dann markiert doch gleich diesen Thread als erledigt, sofern Du keine weiteren Fragen mehr hast.
Das ist hier so Sitte und hilft anderen Suchenden schneller ein fertiges Tutorial zu finden.
Regeln und die Netiquette findest in meiner Sig.

Denk auch bitte daran in Zukunft aussagekräftige Threadnamen zu verwenden. ;)

Objekt, Auflistung, Editor, ObjectCollectionEditor, PropertyGrid
 
Zurück