Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C# und .NET ::  Dynamisch Erzeugte Controls auf einem Panel zentrieren  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
tüfftüff
Unregistrierter




Beitrag tüfftüff Unregistrierter 10:04:29 16.08.2012   Titel:   Dynamisch Erzeugte Controls auf einem Panel zentrieren            Zitieren

Hallo Leute,

ich erzeuge dynamisch Buttuns in einem Panel. Mal 7, mal 3, variabel halt. Im moment werden die linksbündig angeordnet( btn_x.Location(x,y)) und dann veränder ich halt nach jedem schleifendurchlauf die Position von x und y. jetzt möchte ich aber das die Controls zentriert angeordnet werden in dem Panel. Aber irgendwie stell ich mich grade total dämlich an das zu realisieren. Kann mir bitte jemand auf die Sprünge helfen? Vielen Dank
EXDW
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.08.2005
Beiträge: 4732
Beitrag EXDW Mitglied 12:13:24 16.08.2012   Titel:              Zitieren

Welche Technologie?
Was hast du bisher?
tüfftüff
Unregistrierter




Beitrag tüfftüff Unregistrierter 13:00:58 16.08.2012   Titel:              Zitieren

ich benutze Visiual Studio 2010 und programmiere mit c#

bisher habe ich das
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void button1_Click(object sender, EventArgs e)
        {
            Button[] btn = new Button[Convert.ToInt16(textBox1.Text)];
            int x = 10;
            int y = 20;
            for (int i=0; i <(Convert.ToInt16(textBox1.Text)); i++)
            {
                btn[i] = new Button();
                btn[i].Location = new Point(x, y);
                btn[i].Size = new Size(50, 50);
                this.panel1.Controls.Add(btn[i]);
                x = x + 60;
            }
        }


das panel geht über die ganze Form. Die Buttons werden jetzt halt links angeordnet sollen aber zentral werden...Für jede hilfe bin ich dankbar
inflames2k
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.06.2009
Beiträge: 768
Beitrag inflames2k Mitglied 14:10:23 16.08.2012   Titel:              Zitieren

Berechne die Position von Links. Ist ganz einfach.

(Panelbreite - Controlbreite) / 2

_________________
Ich will kein For ech. Ich will wissen was dahinter steckt, sonst stehe ich immer wieder vor dem Problem...

Das ist dreckige kapitalischtische Scheisse!!!
EXDW
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.08.2005
Beiträge: 4732
Beitrag EXDW Mitglied 07:13:40 17.08.2012   Titel:              Zitieren

Gibts in Forms keine Layout Container die das schon können?
tüfftüff
Unregistrierter




Beitrag tüfftüff Unregistrierter 09:16:43 17.08.2012   Titel:              Zitieren

inflames2k schrieb:
Berechne die Position von Links. Ist ganz einfach.

(Panelbreite - Controlbreite) / 2


wenn ich das so mache ist der 1. Button in der Mitte. ich möchte aber zum beispiel wenn ich 3 buttons erzeuge das die miitte von dem zweiten button auch in der mitte von dem Panel ist. komisch komisch alle
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8203
Beitrag Dravere Moderator 10:45:18 17.08.2012   Titel:              Zitieren

David W schrieb:
Gibts in Forms keine Layout Container die das schon können?

Doch. Man könnte das TableLayoutPanel verwenden. 3 Kolonnen, linke Kolonne 50%, rechte Kolonne 50% und die in der Mitte auf AutoSize setzen.

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
EXDW
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.08.2005
Beiträge: 4732
Beitrag EXDW Mitglied 11:42:03 17.08.2012   Titel:              Zitieren

Klingt besser, dann kann er seine Buttons die Kürzer sind in der mittleren Spalte Links ausrichten ...

//Edit:

Les grad das er das gar nicht will ^^


@tüfftüff
du musst den Abstand natürlich für jedes Control separat berechnen, dann müssten alle Buttons in der Mitte sein.


Zuletzt bearbeitet von EXDW am 11:43:42 17.08.2012, insgesamt 1-mal bearbeitet
tüfftüff
Unregistrierter




Beitrag tüfftüff Unregistrierter 11:52:32 17.08.2012   Titel:              Zitieren

gute ide emti dem tlp. hab ich nun so eingestellt( die Columms) aber wenn ich jetzt die buttons dadrin erstellen lasse dann packt er nur einen in die Mitte und danach kommt der nächste in die 3 kolonne. Mache ich zum beispiel einen 4 geht er in eine neue Reihe die ich gar nicht eingestellt habe. Aber hier mal mein code:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void button1_Click(object sender, EventArgs e)
        {
            Button[] btn = new Button[Convert.ToInt16(textBox1.Text)];
             
            for (int i=0; i <(Convert.ToInt16(textBox1.Text)); i++)
            {
                btn[i] = new Button();
                btn[i].Size = new Size(50, 50);
               
 
                this.tableLayoutPanel1.Controls.Add(btn[i],1,0);
               
            }
        }
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8203
Beitrag Dravere Moderator 13:45:27 17.08.2012   Titel:              Zitieren

Ehm, ja, du müsstest natürlich die Anzahl Kolonnen und Reihen nach deinen Bedürfnissen einstellen und deine Controls in die entsprechenden Zellen verteilen.

Oder ich verstehe nicht so recht, was du eigentlich möchtest :confused:

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
c++.de :: C# und .NET ::  Dynamisch Erzeugte Controls auf einem Panel zentrieren  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.