Laden...

Control Parent Titelzeile in Form ändern

Erstellt von Onkel Schrottmeier vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.492 Views
O
Onkel Schrottmeier Themenstarter:in
2 Beiträge seit 2017
vor 6 Jahren
Control Parent Titelzeile in Form ändern

Hallo ..

kann mir jemand an einem einfachen Beispiel erklären wie die Zeile Parent.Text="Text" funktioniert ?
Ich möchte verstehen wie Control Parent funktioniert und was beachtet werden muss. Ein einfaches Beispiel mit kleinen Kommentaren würde mir sicher helfen ...

Lieben Gruß von Onkel Schrottmeier

1.040 Beiträge seit 2007
vor 6 Jahren

Kannst du mal erklären, was du genau vor hast?

Generell gibt es die Parent-Property unter WinForms für jedes Steuerelement, welches von Control erbt. Die Property kann dabei null sein.

Schaue dir mal den Link an und gucke, ob dir das schon weiter hilft.

O
Onkel Schrottmeier Themenstarter:in
2 Beiträge seit 2017
vor 6 Jahren

.. ich möchte die Titelzeile des Formfensters für eine Ausgabe nutzen. Zum Beispiel möchte ich ein Event benutzen um die Maus-Position anzuzeigen. Das Beispiel

 Parent.Text = e.Location.ToString();

.. funktioniert in dem Programm das schon jemand vor mir geschrieben hatte. Ich habe es selbst versucht und es kommt zu Fehlermeldungen. Dann habe ich

ActiveForm.Text = e.Location.ToString();

getestet und siehe da es klappt. Jetzt möchte ich einfach verstehen wo der Unterschied ist und warum das erste Beispiel so nicht klappt. Muss ein Objekt erstellt werden oder liegt es an der Art und Weise wie ich mit dem Event umgehe? Ich bin noch nicht so geübt mit Events ( ist Neuland ) .. ein funktionierendes und leichter zu verstehendes Beispiel wäre gut. Der Link war mir bekannt. Ich finde die Beispiele von Mikro... sehr anstrengend und für blutige Anfänger schwer zu verstehen.

Liebe Grüße von Onkel Schrottmeier

1.040 Beiträge seit 2007
vor 6 Jahren

Die Frage ist nicht so einfach zu beantworten.

Es kommt natürlich darauf an, bei welchem Control du auf die Parent-Property zugreifst.

Im Anhang findest du ein ganz einfaches Fenster mit 2 Button drauf - der eine liegt direkt auf dem Fenster, der andere liegt auf einem Panel. Das Panel liegt auf dem Fenster.
Greifst du nun bei den beiden Button jeweils auf die Parent-Property zu, ist der Parent einmal das Fenster und beim anderen das Panel.

Wenn du über den PanelButton zum Fenster kommen willst, musst du 2x Parent aufrufen:

panelButton.Parent.Parent

Warum dein Beispiel nicht funktioniert können wir hier so nicht sagen, dafür müssten wir das sehen. =)

W
195 Beiträge seit 2008
vor 6 Jahren

Um das 'Form' zu finden, in dem ein Control dargestellt wird, eignet sich die Methode FindForm() (siehe https://msdn.microsoft.com/de-de/library/system.windows.forms.control.findform(v=vs.110).aspx) des Controls deutlich besser als Parent, weil Parent - wie p!llie schon schrieb - nicht zwangsweise das Form sein muss, sondern ein beliebiger Controlcontainer sein kann.