Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
CenterParent
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

CenterParent

beantworten | zitieren | melden

Ich möchte gerne meine Forum zentriert in einer anderen Forum anzeigen lassen.Dies dürfe normal doch mit

Form.StartPosition=FormStartPosition.CenterParent;

Nun wird die Form zwar in der anderen Forum angezeigt aber nicht zentriert.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Handelt es sich um ein MDI-Child? Wenn ja hat FormStartPosition.CenterParent keine Auswirkung.
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Ne es ist kein MDI-Child.Also in Form2 habe ich folgendes stehen:

public void parent(Control c)
{
     this.TopLevel = false;
     this.Parent = c;
     this.StartPosition = FormStartPosition.CenterParent;
}

Dazu die Standart einstellugen vom Form Designer.

In Form1 wird Form2 aufgerufen:

Form2 f= new Form2();
f.parent(this);
f.Visible=true;
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo alf468,

bin mir nicht ganz sicher, aber müsste die StartPosition nicht schon im Konstruktor gesetzt werden, damit sie Wirkung zeigt?

herbivore
private Nachricht | Beiträge des Benutzers
DeveloperX
myCSharp.de - Member



Dabei seit:
Beiträge: 462
Herkunft: .at/ooe&stmk

beantworten | zitieren | melden

Hallo alf!

Übergibst du beim Aufrufen des Dialoges (Show() bzw. ShowDialog()) das übergeordnete Fenster?

mfg
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Also Form2 wird in Form1 angezeigt nur eben nicht zentriert.Das sieht so aus:


Ob ich StartPosition im Konstruktor übergebe spielt keine Rolle.Das übergeordnete Fenster übergebe ich auch. Also entweder ich verstehe den Sinn von CenterParent falsch oder ich mache was falsch .
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

f.parent(this);

Damit landet die Form im Controlcontainer der aufrufenden Form(ist ja schlimmer als MDI...)
Du kannst dein dynamisch erzeugtes Control mit Hilfe der Location positionieren.


      Form f = new Form2();
      f.TopLevel = false;
      f.Parent = this;
      f.Show();
      Point p= new Point(10,20);
      f.Location=p;
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo alf468,

in einem anderen Forum stand, dass CenterParent nur bei MDI-Anwendungen funktioniert.

Aber es ist ja auch ganz leicht die Zentrierungsposition selbst auszurechnen.

herbivore
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Ich glaube ich erkläre mal an einem Beispiel worum es mir bei der ganzen Sache geht.Ich habe eine Login Form und beim klicken auf ein Button werden die eingegeben Daten per Socket an ein Server gesendet, der wiederum die Daten kontrolliert. Während diesem Vorgang will ich ein Fenster anzeigen lassen mit einem Label und einer ProgessBar.Das Statusfenster soll in das Loginfenster ganz überdecken und die ProgessBar +Label soll mittig angezeigt werden.
Zitat
Aber es ist ja auch ganz leicht die Zentrierungsposition selbst auszurechnen.

Bei meinen Rechnungen klappte das nie X(
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

In dem Fall würde ich die Form mit ShowDialog() 'normal' aufrufen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo alf468,

warum zwei Forms machen und nicht einfach den Statusbar mit in das Login-Form packen?

herbivore
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von herbivore
Hallo alf468,

warum zwei Forms machen und nicht einfach den Statusbar mit in das Login-Form packen?

herbivore

Es kommen ja noch viel mehr Forms dazu.Ausserdem passt dies am besten zu meiner Struktur der Klassen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo alf468,

dann erzeuge die Statusanzeige in gleicher Größe und an der gleichen Stelle, wie das Login-Form und verstecke anschließend das Login-Form.

herbivore
private Nachricht | Beiträge des Benutzers