WinForms Schulprojekt Shop Programm
-
Super, das klappt schon mal - danke!
Wäre klasse, wenn mir noch jemand das mit dem UserControl erklären könnte.
-
Dazu sollte sich auf google eigentlich genug finden lassen. Die meiste Information zu Windows Forms ist natürlich an C# gerichtet, weil C++/CLI ja wie gesagt nicht für sowas gedacht ist. Sollte sich aber problemlos übertragen lassen...
-
Soweit war ich auch schon, habe bisher folgendes:
private: System::Void ShopNeu_Click(System::Object^ sender, System::EventArgs^ e) { UserControl^ uc = gcnew UserControl(); uc->CreateControl(); uc->Show(); uc->SetBounds(150, 150, 150, 150); Color Farbe = Color::FromName("Black"); uc->BackColor = Farbe; }
Kam keine Fehlermeldung, passiert ist allerdings auch nichts. Wäre nett, wenn du mir das ein wenig erklären könntest - ein Vollprofi bin ich nämlich leider nicht.
-
Was genau hast du denn erwartet, das dieser Code machen würde?
-
Habe so eben gesehen, dass es eine weitaus bessere Methode gibt - habe also jetzt eine Create_Shop_Control.h und Create_Shop_Control.cpp. Wie bekomme ich das in mein uStore_main Fenster jetzt an die gewünschte Stelle?
-
Ich denk das kann man nur beantworten, wenn du uns erstmal sagst, was genau diese "weitaus bessere Möglichkeit" ist, an der du dich versuchen willst...
Aber ich vermute mal, du hast nun ein Create_Shop_Control Steuerelement gemacht!? Das wäre dann genau das, was ich vorgeschlagen hätte. In dem Fall musst du das Steuerelement nur noch instanzieren und auf deiner Form platzieren...
-
Oh, ja, richtig. Wir verstehen uns offensichtlich.
Ich vermute mit instanzieren meinst du folgendes:
private: System::Void ShopNeu_Click(System::Object^ sender, System::EventArgs^ e) { Create_Shop_Control^ ShopControl = gcnew Create_Shop_Control(); ShopControl->Show(); }
Nur bin ich entweder blind, oder es steht da tatsächlich nicht, aber wie platziere ich es an meine gewünschte Stelle?
-
Um es zu platzieren musst du es zur Controls Collection der entsprechenden Form hinzufügen...
-
Gut, bin jetzt also soweit, dass es kommt, wenn ich auf den Button drücke.
private: System::Void ShopNeu_Click(System::Object^ sender, System::EventArgs^ e) { Create_Shop_Control^ ShopControl = gcnew Create_Shop_Control(); ShopControl->Location = Point(200, 70); Controls->Add(ShopControl); }
Wie kann ich es jetzt allerdings via Button Klick, welcher sich in dem Control befindet, verschwinden lassen?
-
Ich würde spontan mal zwei Möglichkeiten vorschlagen: Entweder du packst den Button in das Control und gibst dem Control ein eigenes Finish Event, das eben ausgelöst wird, sobald der Benutzer der Dialog bestätigt, oder du machst den Button außerhalb des Dialoges...
-
Das Erste hab ich nicht so ganz verstanden, wie meinst du das?
-
Was meinst du mit Finish Event?
-
Gibt deinem Control ein Event, welches ausgelöst wird, wenn im Control der entsprechende Button gedrückt wird. An dieses Event kann deine Hauptform sich dann anhängen. Dem Eventhandler kannst du dann auch gleich die im Dialog gemachten Einstellungen übergeben...
-
Habe in der Klasse des UserControls bisher folgendes:
public event EventHandler ^ OnClickAbbrechen;
private: System::Void erstellenAbbrechen_Click(System::Object^ sender, System::EventArgs^ e) { OnClickAbbrechen(this, nullptr); }
Allerdings kann ich ja nicht, wie die Person es da schreibt, in meinem main Fenster auf das Control klicken und das Event in der Liste auswählen, da es ja noch nicht von Anfang an existiert. Wie mache ich das in meinem Fall?
Wie "hänge" ich also meine Hauptform dran?
-
Habs jetzt mit einem Zeiger auf uStore_main und der Controls->Remove(this); Methode gelöst.
Daher: Closed.