Hallo,
ich programmieren gerade ein UserControl, ich habe eine die klasse COllectionBase vererbt und sieht nun so aus:
[Description( "VerticalProgressBar Setze die Texte für die beschriftung")]
[Category( "VerticalProgressBar" )]
[RefreshProperties(RefreshProperties.All)]
public BeschrArray ArrayListe
{
get
{
return m_ArrayListe;
}
set
{
m_ArrayListe = value;
Invalidate();
}
}
public class BeschrArray : CollectionBase
{
public Beschriftung this[ int index ]
{
get
{
return( (Beschriftung) List[index] );
}
set
{
List[index] = value;
}
}
public int Add( Beschriftung value )
{
return( List.Add( value ) );
}
public int IndexOf( Beschriftung value )
{
return( List.IndexOf( value ) );
}
public void Insert( int index, Beschriftung value )
{
List.Insert( index, value );
}
public void Remove( Beschriftung value )
{
List.Remove( value );
}
public bool Contains( Beschriftung value )
{
// If value is not of type Int16, this will return false.
return( List.Contains( value ) );
}
}
public class Beschriftung
{
public int Pos;
public string Text;
public Color Farbe;
[Description( "Test")]
[Category( "Skala" )]
[RefreshProperties(RefreshProperties.All)]
private int m_SkaleFrequence;
public int SkaleFrequence
{
get
{
return m_SkaleFrequence;
}
set
{
m_SkaleFrequence = value;
}
}
}
wenn ich nun das neue element im designer sehe, dann kann ich über das auswählmenue objekte vom typ Beschriftung hinzufügen und einstellen, aber egal was ich einstelle der designer übernimmt die neuen objektdaten nicht mit in das aktuelle form.
das ziehl ist es eine belibige anzahl von objekten mit voreinstellungen( di im designer gemacht werden) an das usercontrol zu übergeben und nicht jedes elemnet per hand zu initialisieren.
und das user controll kann ja mit Beschriftung.COunt feststellen wie viele objekte übergeben werden.
wenn ich die objekte zur laufzeit hinzufüge funktioniert es, zb. in form load.
ich hoffe ihr könnt mir weiterhelfen, ich habe schon überall gesucht, aber bin nirgends so richtig fündig geworden.
Sebastian
|
|