Laden...

Eigenschafteneditor

Erstellt von snoopy vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.179 Views
S
snoopy Themenstarter:in
204 Beiträge seit 2005
vor 18 Jahren
Eigenschafteneditor

Hi,
ihr kennt ja alle den Eigenschafteneditor vom Visual Studio 2003.

Diese schöne Tabelle.

Gibt es irgendwie die Möglichkeit eine Listview oder so so umzubauen, das sie genau die Funtkionen und das Aussehen bietet? Oder muss man sich nen eigenes Controll erstellen? Oder gibt es sowas schon? Viele Projekte nutzen es ja nun immerhin.

Wüsste auch keinen Namen für das Objekt, wonach man suchen könnte. Hoffe das ihr wisst, wie man es hinbekommt 🙂

Danke schonmal.

4.221 Beiträge seit 2005
vor 18 Jahren

GuckstDu in der Hilfe "PropertyGrid"

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
snoopy Themenstarter:in
204 Beiträge seit 2005
vor 18 Jahren

ah danke, damit bin ich schon um einiges weiter.

Aber ist es Möglich, das PropertyGrid mit komplett eigenen Werten zu füllen?

folgendes zeigt mir leider nichts an:


	private dumm di = new dumm();
		private void Form1_Load(object sender, System.EventArgs e)
		{
			di.fuu = "sldkfj";
			grid.SelectedObject = di;
			
		
			
		}
	}
	public class dumm
	{
		
		public string fuu;
		public void ba()
		{
		}
	}

Das konnte ich nur so zusammenstellen, weil ich hier im Forum gesucht habe, aber ansich konnt man mir da nicht viel weiterhelfen.

Ich möchte es so haben, das ich eine Datenstruktur, (Teil einer XML Datei ) in dieser PropertyGrid angezeigt bekomme.

830 Beiträge seit 2005
vor 18 Jahren

Hallo snoopy,

ein PropertyGrid zeigt immer Eigenschaften an, wie der Name schon sagt.
Also:

class A
{
...
private int index;
...

//Accessor
public int Index
{
get{return this.index;}
set{this.index = value;}
}

}

Diese Klasse wird im PropertyGrid angezeigt, mit einer Zeile mit dem Namen Index. Verantwortlich dafür ist der Accessor.

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Der Property-Editor arbeitet via Reflection auf Objekten. Insofern kannst du "eigene" Daten nur anzeigen, wenn sie sich in einem Objekt befinden. Eine XML-Datei kannst du aber leicht mittels Serialisierung in ein Objekt laden.

S
snoopy Themenstarter:in
204 Beiträge seit 2005
vor 18 Jahren

@friedel:

hab deine klasse etwas erweitert. Da ich mehr mit Strings arbeiten möchte


class A
	{
		
		private int index;
		

		//Accessor
		public int Index
		{
			get{return this.index;}
			set{this.index = value;}
		}

		public string Name
		{
			get{return this.Name;}
			set{this.Name = value;}
		}

	}

Das Feld Name wird auch angezeigt, doch im Inhalt steht:

Eine Ausnahme vom Typ Stackoverflow ist aufgetreten.

Ist daran denn was falsch??

Und wie kann ich später auf die Werte der einzelnen Felder zugreifen? Damit ich z.b. den Inhalt von Name in ner MessageBox ausgegeben kann ?

354 Beiträge seit 2004
vor 18 Jahren

Und das nette an der ganzen Geschichte, du kannst das PropertyGrid auch um eigene Selectoren (UITypeEditor) erweitern. Dadurch kannst eigene Auswahlboxen, Zuweisungsforumlare etc. einbauen.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

354 Beiträge seit 2004
vor 18 Jahren

class A
	{
		
		private int index;
		private string name = null;

		//Accessor
		public int Index
		{
			get{return this.index;}
			set{this.index = value;}
		}

		public string Name
		{
			get{return this.name;}
			set{this.name = value;}
		}

	}

Du musst natürlich einen privaten Member namens "name" haben. Wenn du es so machst, wie du es eben erweitert hast, bist du in einer quasi "Endlosschleife", bis es dir den Stack vollmacht.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

S
8.746 Beiträge seit 2005
vor 18 Jahren

Original von snoopy

  public string **Name**  
  {  
  	get{return this.**Name**;}  
  	set{this.Name = value;}  
  }  

}

Fällt der Groschen?

S
snoopy Themenstarter:in
204 Beiträge seit 2005
vor 18 Jahren

juppp danke, ich hab es nun. Und auf die Felder zugreifen ist ja auch absolut kein Problem 🙂

Hatte nur vorher nie etwas mit diesem get und set gemacht. Bzw kann es auch nicht wirklich zuordnen, was es wirklich tut aber gut.

Danke schön. Jetzt kann ich schön damit programmieren.

Wünsche allen schonmal Fröhliche Weihnachten und nen guten Rutsch!

S
8.746 Beiträge seit 2005
vor 18 Jahren

Properties (so heisst so eine Get/Set-Kombination) ist dazu da, den Zugriff auf private Felder zu kapseln. So kannst du sicherstellen, dass einem integer nur die Zahlen 1-3 zugewiesen werden, man kein Null-Objekt übergeben kann, oder dass eine Zahl als String "herausgegeben" wird. Ein Property kann zugewiesen oder gelesen werden wie eine Variable, aber es wird noch Code ausgeführt.