c# 2005 doppelte Einträge in eigener CmbBox

ichNur

Grünschnabel
Hallo zusammen,

ich bin dabei, eine ComboBox über die ClassLibrary zu erstellen.
Leider werden alle Items doppelt belegt, wenn diese ComboBox aufs Formular gezogen wird.

Beispiel:

Code:
public CbxPortNames()
        {
            Items.Clear();
            string[] ports = SerialPort.GetPortNames();
  
            if (!DesignMode)
            {
                Items.AddRange(ports);
            }
        }

Diese Box soll mit den Namen der seriellen Ports, die im Rechner installiert sind,
gefüllt werden.
Sobald ich diese CmbBox auf ein Formular ziehe, werden alle COM-Ports doppelt eingetragen.
Anstatt "COM1, COM2" wird "COM1, COM2 , COM1, COM2" eingetragen.

Erstelle ich diese Box als UserControl, funktioniert alles einwandfrei.
Ich gehe davon aus, dass ich eine Funktion wie :
Code:
if (!Parent.DesignMode)
benötige, um den DesignMode des Formulars anzusprechen, auf das die Box gezogen wird.

Hat vielleicht jemand einen Tipp ?

Danke und Grüsse ,

IchNur
 
Hallo zusammen,

das Problem konnte durch Überschreiben der Layout-Eigenschaft beseitigt werden.
Für Alle die es interessiert:


Code:
private void SerialLayout(Object sender, EventArgs e)
        {
            Items.Clear();
            string[] ports = SerialPort.GetPortNames();
            Items.AddRange(ports);
        }

        // Konstruktor 
        public CbxPortNames()
        {
            SelectedIndexChanged += CbxPortNamesChanged;
            Click += new EventHandler(CbxPortNames_Click);
             ................
             ................

            Layout += SerialLayout; // die Lösung      
        }


m.f.G.

IchNur
 

Neue Beiträge

Zurück