www.mikrocontroller.net

Forum: PC-Programmierung MS Visual C++ : Array of Button


Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich probiere gerade etwas mit MS Visual C++.

Ich habe eine Form angelegt. Darauf ein Button angelegt.
Das habe ich per "drag&drop" aus der Toolbox erstellt. Dazu wird 
folgender COde generiert:
private: System::Windows::Forms::Button^  button1;
Das müsste mir einen "Zeiger" des Typs Button mit dem Namen button1 
deklarieren.
this->button1 = (gcnew System::Windows::Forms::Button());
Das erzeugt den Button auf der Form.
this->Overlays->Controls->Add(this->button1);
Hier wird der Button einem groupBox-Container (mit Namen Overlay) 
hinzugefügt.
this->button1->Location = System::Drawing::Point(271, 52);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(108, 35);
this->button1->TabIndex = 0;
this->button1->Text = L"Anzeigen";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnewSystem::EventHandler(this,&Form1::button1_Click);
Das legt Eigenschaften/Ereignisse des Buttons fest.

Die Erklärung von mir ist sicherlich nicht fachgerecht. Aber das ist 
soweit von mir nachvollziehbar. Im Ereignis Click habe ich ein Stück 
Code hinterlegt, welches mir die Hintergrundfarbe des Buttons ändert. 
Das geht auch.

Jetzt möchte ich aber ein Array von Buttons (32x8) anlegen. Wie muss ich 
das nun machen, damit ich den Quellcode für die Funktion möglichst nur 
einmal mit einer Schleife bearbeiten kann? also sowas: button1[x][y] ??

Danke schonmal

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wenn zum Beispiel in nem Panel vorliegend:

Panel1->Controls->Add(gcnew Button() );

Natürlich musst du den Button dann noch positionieren.

int LabelIndex = Panel1->Controls->Count -1;
Panel1->Controls[LabelIndex]->Left = 10;
Panel1->Controls[LabelIndex]->Top = (EditIndex * 15 )-20;
Panel1->Controls[LabelIndex]->Width = 50;
Panel1->Controls[LabelIndex]->TabIndex = Panel1->Controls->Count - 
(Elemente im Panel die schon vorhanden sind);

Hoffe ich habe dich richtig verstanden und es hilft dir.
Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.