Laden...

Ermitteln aus welchem Usercontrol ein Control focusiert wurde

Erstellt von sharp.new vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.495 Views
S
sharp.new Themenstarter:in
100 Beiträge seit 2006
vor 17 Jahren
Ermitteln aus welchem Usercontrol ein Control focusiert wurde

Hallo zusammen,
ich habe eine Methode geschrieben innerhalb der Main, die mir das Focusierte Control als Rückgabewert zurückliefert, funktioniert auch Einwandfrei. Nun möchte ich des weiteren den Usercontrol ermitteln in der sich das Control befindet. Zur Info ich habe einige Usercontrols die auf der Main dynamisch platziert werden und möchte eine Auswertung statfinden lassen aus welchem Usercontrol etwas eingegangen ist.

Oder gibt es eine elegante Lösung in der aus zwei Usercontrols die Selektion eines Listvieweintrages oder Treevieweintrages ausgewertet werden kann.

Grüsse

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo sharp.new,

Control.Parent

herbivore

S
sharp.new Themenstarter:in
100 Beiträge seit 2006
vor 17 Jahren

Hallo Herbivore,
danke für die schnelle Antwort, funktioniert auch soweit. Allerdings erhalte ich bei einer Auswahl eines Listviews, die ich wie folgt zuweise:


string vparent = getcontrl.Parent.Name.ToString();

die Zuweisung "".

Sämtliche andere Controls(TreeView etc.) funktionieren 🤔

Grüsse

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo sharp.new,

der Name eines Controls ist defaultmäßig leer. Allerdings generiert VS Code, um den Controls als Namen den Namen der Variablen, über die das Control ansprechbar ist, zu verpassen (das ist eine Eigenschaft von VS nicht von .NET oder C#). Wenn es eine solche Variable nicht gibt, dann bleibt es eben beim Default. Du kannst diesen Namen aber für jedes Control auch beliebig (um-)setzen.

herbivore

S
sharp.new Themenstarter:in
100 Beiträge seit 2006
vor 17 Jahren

Hallo Herbivore,
ist das nicht die Name-Eigenschaft des Controls, dass entweder über den Editor oder auch Codetechnisch vergeben wird. Diese sind bei allen Controls vergeben oder von welcher Variable ist hier die Rede ?(

Grüsse

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo sharp.new,

ist das nicht die Name-Eigenschaft des Controls, dass entweder über den Editor oder auch Codetechnisch vergeben wird.

sondern?

Diese sind bei allen Controls vergeben

Natürlich haben alle Controls die Name-Eigenschaft, aber sie ist eben nicht bei allen Controls gesetzt.

oder von welcher Variable ist hier die Rede

von den Variablen, die VS generiert, also sowas wie button1.

herbivore

S
sharp.new Themenstarter:in
100 Beiträge seit 2006
vor 17 Jahren

Hallo Herbivore,
nach jeglicher Überprüfung sind alle Variablen gesetzt. Ich verwende allerdings ein ListviewControl in drei unterschiedlichen Usercontrols. Es ist eine Vermutung aber auch weil mir nichts einfällt im Moment. Könnte es an der vielfachen Verwendung eines Controls in verschiedenen Usercontrols liegen?

Grüsse

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo sharp.new,

so genau kenn ich VS nicht. Aber du kannst ja einfach im Code nachgucken. Wenn für das Control keine Zuweisung der Name-Eigenschaft findest, liegt es daran. Du kannst die dann einfach (hinter InitializeComponents) hinzufügen, wenn du sie brauchst.

herbivore

S
sharp.new Themenstarter:in
100 Beiträge seit 2006
vor 17 Jahren

Hallo Herbivore,
an der Name-Eigenschaft liegt es nicht. Es liegt daran das das ListviewControl innerhalb eines splitcontainer.Panel1 zugeordnet ist. Die Parent-Eigenschaft liefert als Ergebniss lediglich eine Ebene drüber. Gibt es keine Standardmethode,aus dem Framework, die diese zurückliefert???

Grüsse

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo sharp.new,

Parent liefert den Parent. 🙂 Wie im wirklichen Leben kann ein Stammbaum über mehrere Ebene geben. Wenn dir der Parent nicht gefällt und du den GrandParent haben willst, dann musst du das selber implementieren.

herbivore